let _horizon_type = [| 'Days, 'Weeks, 'Months, 'Quarters, 'Years, 'Ongoing |] in let _pole_type = [| 'Yang, 'Yin, 'Spiral |] in let _audience_type = [| 'Developer, 'EndUser, 'Contributor, 'Agent, 'PublicInternet |] in let _channel_type = [| 'GitRepo, 'PublishedSite, 'RSSFeed, 'Newsletter, 'SocialFeed, 'CLI, 'Docs |] in let _seo_intent_type = [| 'Organic, 'Reference, 'Community, 'None |] in let _severity_type = [| 'Hard, 'Soft |] in let _channel_status = [| 'Active, 'Planned, 'Paused, 'Retired |] in let _purpose_declaration_type = { id | String, name | String, pole | _pole_type, statement | String, elaboration | String, primary_audience | Array _audience_type, anti_purpose | String, horizon | _horizon_type, } in let _publication_intent_type = { id | String, name | String, description | String, channels | Array _channel_type, readiness_gate | String, trigger_condition | String, anti_patterns | Array String, } in let _content_objective_type = { id | String, name | String, description | String, target_audience | Array _audience_type, content_kinds | Array String, purpose_alignment_note | String, seo_intent | _seo_intent_type, horizon | _horizon_type, active | Bool | default = true, } in let _validation_criteria_type = { id | String, name | String, description | String, check_hint | String, severity | _severity_type, applies_to | Array String, } in let _seo_criterion_type = { id | String, name | String, description | String, rationale | String, check_hint | String, severity | _severity_type, applies_to | Array String, } in let _propagation_channel_type = { id | String, name | String, channel | _channel_type, description | String, status | _channel_status, target_audience | Array _audience_type, content_kinds | Array String, seo_role | _seo_intent_type | default = 'None, frequency | String | optional, gate_id | String | optional, } in let _purpose_file_type = { declaration | _purpose_declaration_type, publication_intent | _publication_intent_type, content_objectives | Array _content_objective_type, validation_criteria | Array _validation_criteria_type, seo_criteria | Array _seo_criterion_type, propagation_channels | Array _propagation_channel_type, } in { Horizon = _horizon_type, Pole = _pole_type, Audience = _audience_type, Channel = _channel_type, SeoIntent = _seo_intent_type, Severity = _severity_type, ChannelStatus = _channel_status, PurposeDeclaration = _purpose_declaration_type, PublicationIntent = _publication_intent_type, ContentObjective = _content_objective_type, ValidationCriteria = _validation_criteria_type, SeoCriterion = _seo_criterion_type, PropagationChannel = _propagation_channel_type, PurposeFile = _purpose_file_type, }