# Footer Configuration Contracts # # Type contracts for footer configuration with multilingual support. # Single source of truth for footer content, menu items, and social links. { # Bilingual text fields BilingualText = { en | String | doc "English text", es | String | doc "Spanish text", }, # Footer menu item (subset of main menu contract) FooterMenuItem = { id | String | doc "Unique identifier", routes | { en | String, es | String, .. } | doc "Routes for each language", labels | BilingualText | doc "Display labels for each language", icon | String | optional, priority | Number | doc "Display priority (negative for footer-only items)" | default = 0, is_external | Bool | default = false, enabled | Bool | default = true, .. }, # Social media link SocialLink = { name | String | doc "Social network name (e.g., 'LinkedIn', 'GitHub')", url | String | doc "Full URL to social profile", icon_class | String | doc "Icon class (e.g., 'fab fa-linkedin')", enabled | Bool | default = true, .. }, # Root footer configuration FooterFile = { title | String | doc "Footer title (same for all languages)", company_desc | BilingualText | doc "Company description for each language", copyright_text | BilingualText | doc "Copyright notice for each language", menu | Array FooterMenuItem | doc "Footer-specific menu items (e.g., Privacy, Legal)", social_links | Array SocialLink | doc "Social media links", .. }, }