# Input Rules **Domain:** API Design / Validation **Doc Type:** Contract Component **Maturity:** Core Design Principle **Related:** [[wiki/Portable Contract|Portable Contract]], [[wiki/Normalized Output|Normalized Output]], [[wiki/Error Behavior|Error Behavior]] --- ## Definition **Input rules specify the accepted shapes, types, encodings, defaults, limits, and normalization steps for a capability.** They distinguish valid variation from ambiguity and prevent individual runtime ports from inventing their own interpretations. ## Project Context Text cleanup, slug creation, quote extraction, path handling, and serialization are especially sensitive to input differences such as Unicode normalization, line endings, missing fields, punctuation, and protected Markdown regions. ## Key Insight **Interoperability begins before execution: every runtime must agree on what the input means.** ## See Also [[wiki/Normalized Output|Normalized Output]], [[wiki/Shared Fixtures|Shared Fixtures]], [[wiki/Deterministic Transformation|Deterministic Transformation]], [[wiki/Technical Terms|Technical Terms]]