{
  "header.eyebrow": "section: portfolio  # the good stuff",
  "header.title": "projects:\n  list: all  # brace yourself",
  "header.description": "# A curated selection\nprojects:\n  types: [personal, experiments, open_source]\n  filter_by: [category, tags, stack]\n  # yes, all of them",
  "header.cta_works.top": "action: explore",
  "header.cta_works.bottom": "target: journey",
  "filter.category": "filter: category  # pick wisely",
  "filter.tags": "filter: tags  # so many tags",
  "filter.stack": "filter: stack  # the real question",
  "filter.reset": "action: reset  # start over, like my career",
  "filter.search_tag": "search:\n  type: tag  # good luck finding it",
  "filter.search_stack": "search:\n  type: stack  # ctrl+f vibes",
  "filter.none_tag": "result: null  # no tags found, sadge",
  "filter.none_stack": "result: null  # no stack found, impossible",
  "filter.selected": "status: added  # you picked this",
  "filter.all": "scope: all  # no filter gang",
  "filter.personal": "category: personal",
  "filter.open_source": "category: open_source  # free as in beer",
  "filter.client": "category: client  # the paying kind",
  "status.done": "status: done  # ship it",
  "status.in_progress": "status: WIP  # it's always WIP",
  "status.archived": "status: archived  # resting in /dev/null",
  "omnicard.shortDescription": "# Card game with custom engine\nomnicard:\n  type: strategy\n  engine: custom  # no Unity here",
  "omnicard.longDescription": "# WARNING: ambitious project ahead\nomnicard:\n  description: |\n    Card game with dedicated business engine,\n    complex rule logic, and architecture built to last.\n  scope: [game_design, architecture, full_stack]\n  status: send_help  # it never ends",
  "omnicard.highlights.0": "- modular_business_engine: true  # rule-oriented",
  "omnicard.highlights.1": "- effects_events_states: managed  # somehow",
  "omnicard.highlights.2": "- realtime_sync: true  # websockets go brrr",
  "omnicard.lessonsLearned.0": "- complex_logic_readable: true  # the holy grail",
  "omnicard.lessonsLearned.1": "- game_engine_testable: achievable  # with pain",
  "omnicard.lessonsLearned.2": "- long_term_architecture: front+back+gameplay  # triple threat",
  "pvzf-translation-fr.shortDescription": "# Translation lead role\npvzf:\n  role: lead_fr  # oui",
  "pvzf-translation-fr.longDescription": "# Not just Google Translate\npvzf_translation:\n  scope: french_branch\n  role: lead\n  tasks: [coordination, review, terminology]\n  google_translate: false  # absolutely not",
  "pvzf-translation-fr.highlights.0": "- lead: french_branch  # chef de traduction",
  "pvzf-translation-fr.highlights.1": "- terminology: consistent  # no synonyms chaos",
  "pvzf-translation-fr.highlights.2": "- contributions: structured  # not a free-for-all",
  "pvzf-translation-fr.lessonsLearned.0": "- collaborative_coherence: hard  # but worth it",
  "pvzf-translation-fr.lessonsLearned.1": "- translation_standards: formalized  # finally",
  "pvzf-translation-fr.lessonsLearned.2": "- community_quality: possible  # with effort",
  "portfolio.shortDescription": "# This very site\nportfolio:\n  type: next_gen\n  immersive: true  # you're looking at it",
  "portfolio.longDescription": "# Meta: this is the project you're browsing\nportfolio:\n  purpose: technical_showcase\n  more_than: simple_vitrine  # way more\n  tech: [Angular, GSAP, SSR]\n  goal: impress  # is it working?",
  "portfolio.highlights.0": "- angular_ssr: true  # hydration included",
  "portfolio.highlights.1": "- responsive_components: strongly_typed  # no any",
  "portfolio.highlights.2": "- gsap_animations: advanced  # scroll reveal magic",
  "portfolio.highlights.3": "- lighthouse_score: high  # Core Web Vitals approved",
  "portfolio.highlights.4": "- design_system: custom  # no Bootstrap, fight me",
  "portfolio.lessonsLearned.0": "- scalable_animated_front: possible  # barely",
  "portfolio.lessonsLearned.1": "- rich_animations_mobile: challenging  # 60fps or bust",
  "portfolio.lessonsLearned.2": "- ux_as_branding: effective  # design is marketing",
  "portfolio.lessonsLearned.3": "- responsive_media_angular: industrialized  # finally",
  "lis-web.shortDescription": "# Professional web presence\nlis_web:\n  type: showcase\n  client: real  # not a tutorial",
  "lis-web.longDescription": "# Real client, real deadlines\nlis_web:\n  type: professional\n  solution: exploitable\n  constraints: [communication, readability, credibility]\n  tutorial_mode: false",
  "lis-web.highlights.0": "- web_presence: credible  # looks legit",
  "lis-web.highlights.1": "- business_tech_alignment: true  # rare achievement",
  "lis-web.highlights.2": "- professional_logic: anchored  # not floating",
  "lis-web.lessonsLearned.0": "- business_to_interface: translated  # not literally",
  "lis-web.lessonsLearned.1": "- web_credibility: non_negotiable",
  "lis-web.lessonsLearned.2": "- tech_image_readability: converged  # triple constraint",
  "dev-mates.shortDescription": "# Company showcase site\ndev_mates:\n  type: vitrine\n  focus: [identity, services, credibility]",
  "dev-mates.longDescription": "# My actual company website\ndev_mates:\n  purpose: professional_presence\n  identity: clear\n  services: highlighted\n  # yes it's a real company",
  "dev-mates.highlights.0": "- professional_showcase: true  # look mom, a company",
  "dev-mates.highlights.1": "- message_image_structure: coherent  # aligned",
  "dev-mates.highlights.2": "- credibility_readability: prioritized",
  "dev-mates.lessonsLearned.0": "- site_serves: [communication, technique]  # both",
  "dev-mates.lessonsLearned.1": "- web_identity: thought_through  # not an afterthought",
  "dev-mates.lessonsLearned.2": "- image_without_losing_rigor: achievable  # balance",
  "pvz-fuzion-console-manager.shortDescription": "# Console tool for translations\npvz_console:\n  checks: missing_translations  # where are they",
  "pvz-fuzion-console-manager.longDescription": "# QA tool for translators\npvz_console_manager:\n  purpose: detect_missing_translations\n  per_version: true\n  simplifies: quality_control\n  # because manual checking is pain",
  "pvz-fuzion-console-manager.highlights.0": "- auto_detection: missing_translations  # found 42",
  "pvz-fuzion-console-manager.highlights.1": "- quality_version_tracking: supported  # per release",
  "pvz-fuzion-console-manager.highlights.2": "- utility: concrete  # for the community",
  "pvz-fuzion-console-manager.lessonsLearned.0": "- simple_useful_tools: best_tools  # KISS",
  "pvz-fuzion-console-manager.lessonsLearned.1": "- automate_repetitive: reliability++",
  "pvz-fuzion-console-manager.lessonsLearned.2": "- tool_from_real_need: true  # not resume-driven",
  "shreksophone.shortDescription": "# Peak engineering\nshreksophone:\n  type: troll_cdn\n  replaces: UX\n  with: shrek_sax  # no regrets",
  "shreksophone.longDescription": "# This is art\nshreksophone:\n  concept: one_click_shrek\n  dignity: abandoned\n  fullscreen: yes\n  saxophone: absolutely\n  # deploy to production? already done",
  "shreksophone.highlights.0": "- concept: minimalist  # maximum impact",
  "shreksophone.highlights.1": "- frontend: simple_but_effective  # less is more",
  "shreksophone.highlights.2": "- creative_direction: fully_assumed  # no shame",
  "shreksophone.lessonsLearned.0": "- absurd_concepts: finish_them  # commit to the bit",
  "shreksophone.lessonsLearned.1": "- memorable_with_minimal_tech: proven  # shrek.mp4",
  "shreksophone.lessonsLearned.2": "- atypical_ux_coherence: important  # even for trolls",
  "glossairequest.shortDescription": "# Quiz app, serious this time\nglossairequest:\n  stack: [Angular, ASP.NET Core]\n  purpose: pedagogical_quizzes",
  "glossairequest.longDescription": "# Full-stack quiz platform\nglossairequest:\n  frontend: Angular\n  backend: ASP.NET Core\n  features: [quizzes, stats, admin]\n  auth: JWT  # bearer of knowledge",
  "glossairequest.highlights.0": "- auth: JWT  # secure, probably",
  "glossairequest.highlights.1": "- features: [quizzes, scores, stats]  # gamification",
  "glossairequest.highlights.2": "- architecture: Angular + ASP.NET  # clean separation",
  "glossairequest.lessonsLearned.0": "- separation_of_concerns: Angular_vs_API  # SOLID vibes",
  "glossairequest.lessonsLearned.1": "- protected_routes: properly_guarded  # no sneaking",
  "glossairequest.lessonsLearned.2": "- pedagogical_app: business_logic_included  # not just CRUD",
  "league-of-data-base.shortDescription": "# LoL data aggregator\nleague_of_data_base:\n  game: League of Legends\n  multilingual: true  # i18n strikes again",
  "league-of-data-base.longDescription": "# SELECT * FROM league_data\nleague_of_data_base:\n  purpose: centralize_lol_data\n  features: [champions, items, runes]\n  extensible: true\n  api: riot_games  # rate limited, obviously",
  "league-of-data-base.highlights.0": "- riot_api: integrated  # rate limits are fun",
  "league-of-data-base.highlights.1": "- hard_links: no_duplicate_images  # disk space matters",
  "league-of-data-base.highlights.2": "- ui: [Twig, Tailwind]  # responsive and fast",
  "league-of-data-base.lessonsLearned.0": "- extensible_api_architecture: designed  # future-proof",
  "league-of-data-base.lessonsLearned.1": "- media_optimization: at_scale  # thousands of images",
  "league-of-data-base.lessonsLearned.2": "- user_preferences: [sessions, cookies, URL]  # pick all three",
  "blender-collection.shortDescription": "# Blender add-on manager\nblender_collection:\n  purpose: share_addons\n  platform: web  # not a Blender plugin",
  "blender-collection.longDescription": "# Community add-on platform\nblender_collection:\n  features: [organize, share, download]\n  visibility: [public, private]\n  bundle: single_file  # zip and ship",
  "blender-collection.highlights.0": "- profiles_collections: public_or_private  # your choice",
  "blender-collection.highlights.1": "- admin_dashboard: analytics_included  # big brother mode",
  "blender-collection.highlights.2": "- workers: async  # cache everything",
  "blender-collection.lessonsLearned.0": "- community_app_roles: multi_level  # admin, user, visitor",
  "blender-collection.lessonsLearned.1": "- heavy_operations: non_blocking  # async or die",
  "blender-collection.lessonsLearned.2": "- deployment: [Docker, GitHub_Actions]  # proper CI/CD",
  "symfony-session.shortDescription": "# Symfony security showcase\nsymfony_session:\n  focus: [sessions, security, admin]\n  framework: Symfony  # obviously",
  "symfony-session.longDescription": "# Security is not optional\nsymfony_session:\n  purpose: [session_management, security, admin]\n  use_case: [back_office, training_platform]\n  framework: Symfony\n  # no, it's not Laravel",
  "symfony-session.highlights.0": "- security: [captcha_v3, honeypot, rate_limiter]  # triple defense",
  "symfony-session.highlights.1": "- crud: [users, trainees, modules, programs]  # the full CRUD",
  "symfony-session.highlights.2": "- features: [PDF_generation, FullCalendar]  # fancy",
  "symfony-session.lessonsLearned.0": "- symfony_security_layers: multiple  # defense in depth",
  "symfony-session.lessonsLearned.1": "- mvc_admin_project: structured  # clean MVC",
  "symfony-session.lessonsLearned.2": "- front_ergonomy_vs_server_logic: articulated  # the eternal battle",
  "timeline.featured": "featured: true  # star project",
  "timeline.detail": "action: view_detail  # click me",
  "timeline.aria": "aria:\n  label: project_timeline  # a11y first",
  "modal.close": "modal:\n  action: close  # escape works too",
  "modal.image_fullscreen": "image:\n  display: fullscreen  # zoom enhance",
  "modal.previous": "navigate: previous  # <",
  "modal.next": "navigate: next  # >",
  "modal.video_title": "video:\n  type: project_demo  # lights, camera, action",
  "modal.description": "section: description  # the words part",
  "modal.lessons": "section: lessons_learned  # the wisdom part",
  "modal.highlights": "section: highlights  # the brag part",
  "modal.links": "section: links  # the useful part",
  "modal.demo": "link: demo  # try before you buy",
  "modal.site": "link: site  # the real deal",
  "today": "date: today  # carpe diem.yaml"
}
