hololake-system-architecture/language/standards/TCS-DECLARATION-STANDARD-v0.1.hldp

52 lines
2 KiB
Text

schema: tcs.declaration-standard/v1
id: TCS-DECLARATION-STANDARD-0001
version: 0.1.0
state: DRAFT_EXECUTABLE_SUBSET
common_header:
required:
schema: Text
name_zh: Text
name_en: Text
version: SemVerText
language: Text
profile: Text
protocols: List<NumberId>
lifecycle: Enum<CANDIDATE,STABLE,DEPRECATED,RETIRED>
canonical_uri: Uri
compatibility: List<Text>
identity_rule: TOP_LEVEL_DECLARATION_ID_IS_AUTHORITATIVE_AND_MUST_MATCH_REGISTRY
declarations:
PROGRAM:
schema: tcs.program/v1
required_sections: [header, source, subject, target, inputs, outputs, conditions, actions, authority, resources, failure, stop, cleanup, rollback, receipt]
executable: true
MODULE:
schema: tcs.module/v1
required_sections: [header, source, manifest, entry, capabilities, authority_ceiling, resource_ceiling, data_scope, network_scope, install, self_test, rollback, projection]
executable: THROUGH_REGISTERED_ENTRY_PROGRAM
PROTOCOL:
schema: tcs.protocol/v1
required_sections: [header, source, scope, vocabulary, fields, states, transitions, invariants, validation, errors, examples, acceptance]
executable: false
COMPILER:
schema: tcs.compiler/v1
required_sections: [header, source_language, lexer_rules, parser_rules, semantic_types, program_validation, lowering_to_gir, canonicalization, output_contract, self_host]
executable: AFTER_SELF_HOST_GATES
EVENT:
schema: tcs.event/v1
required_sections: [header, source, subject, event_time, trigger, observation, emergence, lock, why, rejected, evidence]
executable: false
append_only: true
RECEIPT:
schema: tcs.receipt/v1
required_sections: [header, request, operation, result, verification, proof, integrity, boundaries, next]
executable: false
append_only: true
extension_rule:
unknown_section: REJECT
allowed_only_when:
- EXTENSION_HAS_REGISTERED_GLS_ID
- EXTENSION_VERSION_IS_LOCKED
- EXTENSION_SCHEMA_AND_NEGATIVE_CASES_EXIST
- COMPILER_EXPLICITLY_SUPPORTS_EXTENSION