INPUT_CONTRACTS — SolumTools (Canonical)
Purpose
This document defines the canonical INPUT CONTRACTS for SolumTools. An input contract specifies what data can be provided to the system, in what structure, with what guarantees, and with what constraints.
Inputs are treated as requests for interpretation, never as commands to mutate state directly.
Core Principles
- Inputs never imply state changes by themselves.
- All inputs must be explicit, bounded, and self-describing.
- No hidden defaults, no inferred parameters.
- Inputs are validated BEFORE any processing or simulation.
- Invalid inputs are rejected, never corrected.
General Input Envelope
All inputs follow this envelope:
{ “type”: “
- type: declares intent (not action)
- version: schema version
- payload: data strictly defined per type
Canonical Input Types
Payload: { “zoom_level”:
Constraints:
- zoom_level must be valid per ZOOM_RULES
- radius must be >= 0
- coordinates must be integers
Payload: { “wallet_address”: “
Constraints:
- wallet_address must be checksummed or canonical hex
- mode must be one of the allowed literals
Payload: { “timestamp”:
Constraints:
- timestamp must be <= current time
- scope defines resolution, not permissions
Payload: { “from”:
Constraints:
- from < to
- range must be bounded by system limits
Validation Rules
- Unknown input types are rejected.
- Missing fields are rejected.
- Extra fields are rejected.
- Type mismatches are rejected.
Versioning
Input contracts are immutable once published. New behavior requires a new version identifier.
AI Consumption Notes
- Inputs are not suggestions.
- Inputs are not prompts.
- Inputs are formal contracts.
- AI must never invent missing fields.
End of file.