# ─────────────────────────────────────────────────────────────────────────────
# Resume Forge: the annotated schema. Every key the site reads, with its
# accepted values. Copy this file, delete what you do not need, paste it into
# the YAML tab (or drop the file on the page). https://resume.neorgon.com/
#
# Validate offline:  node validate.mjs my.resume.yaml
# Unknown values never break a file: the parser falls back to the default and
# lists a warning. Dates are free text ("Sep 2025", "2020", "Present").
# ─────────────────────────────────────────────────────────────────────────────
resume:
  meta:
    title: My resume            # name in the saved list and the file name
    lang: en                    # en | es. Sets the html lang of the sheet, the default title of
                                # a new section, and the words the sheet prints itself: at "es" a
                                # stored end date of "Present" prints as "Actualidad". These keys
                                # stay English in every language, and so does the editor. A title
                                # you have typed is never overwritten when you change this.

  basics:
    name: Marina Costa
    title: Cloud Platform Engineer   # headline under the name
    photo: ""                   # data: URI (the editor embeds uploads) or https URL
    email: marina@example.com
    phone: +351 912 345 678
    location: Lisbon, Portugal
    website: https://marina.example.dev
    links:                      # socials; render near the name and in a contact section
      - label: LinkedIn
        url: https://www.linkedin.com/in/marina-costa
        icon: linkedin          # optional: brand slug, glyph id, "favicon", data: URI or https image URL.
                                # Empty = detected from the URL (github.com -> github, x.com -> x, ...).
      - label: GitHub
        url: https://github.com/marinacosta

  # Sections render in this order. zone puts one in the main column or the side
  # column (aside); templates without a side column render aside sections inline.
  sections:
    - type: text                # paragraphs; **bold**, *italic*, [link](https://...)
      title: Profile
      zone: main
      style: paragraphs         # paragraphs | quote | compact
      text: |-
        One or two short paragraphs. A blank line starts a new one.

    - type: experience
      title: Experience
      zone: main
      items:
        - role: Platform Engineering Lead
          company: Fabrikam Logistics
          team: Developer Platform       # optional, rendered as company > team
          location: Lisbon, Portugal
          start: Jan 2024
          end: Present
          url: ""                       # optional link on the company
          summary: One line on the role.
          highlights:
            - A bullet.
            - Another bullet.

    - type: education
      title: Education
      zone: main
      items:
        - degree: B.S. Computer Science
          school: University of Lisbon
          field: Computer Science       # optional
          location: Lisbon
          start: 2014
          end: 2018
          score: GPA 6.5 / 7            # optional
          url: ""
          notes: Thesis, honours, courses.

    - type: skills
      title: Skills
      zone: aside
      style: tags                 # tags | bars | dots | hearts | list | grid (empty = design.skills)
      columns: 1                  # optional 1 to 3, for list-like styles
      items:
        - name: Kubernetes
          level: 5                # 0 hides the level, 1 to 5
          group: Platform         # optional; items are grouped under a small label

    - type: languages
      title: Languages
      zone: aside
      style: list                 # list | bars | dots | tags
      items:
        - name: Portuguese
          level: Native           # free text
          score: 5                # optional 0 to 5, used by bars and dots

    - type: certifications
      title: Certifications
      zone: aside
      items:
        - name: AWS Solutions Architect
          issuer: Amazon
          date: 2023
          url: https://www.credly.com/...
          id: ABC-123

    - type: projects
      title: Projects
      zone: main
      items:
        - name: Route planner
          role: Maintainer
          start: 2023
          end: Present
          url: https://marina.example.dev/routes
          summary: What it is.
          highlights:
            - Why it matters.

    - type: awards
      title: Awards
      zone: main
      items:
        - title: Engineer of the year
          issuer: Northwind
          date: 2024
          summary: What it was for.

    - type: volunteer
      title: Volunteering
      zone: main
      items:
        - role: Mentor
          org: Code Club
          location: Remote
          start: 2022
          end: Present
          url: ""
          summary: ""
          highlights: []

    - type: publications
      title: Publications
      zone: main
      items:
        - title: Title
          publisher: Medium
          date: Mar 2025
          url: https://...
          summary: ""

    - type: iconrow               # a row of icon tiles: socials, trophies, hobbies, tools
      title: Socials
      zone: aside
      style: tiles                # tiles | circles | outline | plain | list (empty = design.icons)
      source: ""                  # "basics" mirrors basics.links (type socials once); items are then ignored
      items:
        - label: GitHub
          icon: github            # brand slug or glyph id; empty = detected from url
          url: https://github.com/marinacosta
        - label: Photography      # no url: just the tile
          icon: camera

    - type: list                  # short facts, optionally with icons and a picture
      title: Trivia
      zone: aside
      style: bullets              # bullets | check | plain | card
      image: ""                   # optional data: URI or URL, shown beside the list
      items:
        - text: Portuguese, based in Lisbon
          icon: pin

    - type: tags
      title: Interests
      zone: aside
      items:
        - name: Photography
        - name: Board games

    - type: contact               # email, phone, location, website and links from basics
      title: Contact
      zone: aside

    - type: references
      title: References
      zone: main
      items:
        - name: Jane Smith
          role: Engineering Manager, Acme
          contact: jane@acme.example
          text: Optional quote.

    - type: pagebreak             # forces the next section onto a new page when printing.
      zone: main                  # No title and no heading: it prints nothing itself and shows
                                  # a dashed marker in the editing preview only. Put it in the
                                  # main column; in the side column it does nothing.

    - type: gaming                # PSN and Steam numbers. Type them in: every field here is
      title: Gaming               # editable by hand, which is the normal way to fill it.
      zone: aside                 # PSN fetching is retired (the source blocks automated
      data:                       # requests). Steam fetching needs an API key the site owner
        psn:                      # sets, and is off when there is none.
          username: ""            # names the PSN block on the sheet
          stats:
            level: 0              # 0 to 999; leave a number out and it is not drawn at all
            games: 0
            trophies:
              platinum: 0
              gold: 0
              silver: 0
              bronze: 0
        steam:
          id: ""                  # 17 digits; names the Steam block on the sheet
          stats:
            games: 0              # games owned
            playtime: 0           # hours, one decimal allowed
            recentGames:          # up to three, shown on one line
              - name: ""

    # Any section also accepts:  hidden: true   (kept in the file, not rendered)

  design:
    template: banner            # banner | sidebar | split | classic | stripe | cards
    palette: navy               # navy | slate | graphite | ink | ocean | teal | forest | burgundy | violet | amber | rose | sand | mist
    colors: {}                  # optional overrides: band, bandText, accent, tile, heading, text, muted, rule, page, card (hex)
    fonts: modern               # modern | clean | classic | humanist | serif | grotesk | editorial | mono | arcade | marker
                                # or an object: { heading: Montserrat, body: DM Sans } (Google Fonts family names)
    fontScale: 1                # 0.8 to 1.2
    density: normal             # compact | normal | relaxed
    page: A4                    # A4 | Letter
    headings: pill              # pill | bar | rule | caps | plain
    entries: plain              # plain | timeline | cards   (experience, education, projects, volunteer)
    bullet: ✦                   # glyph before highlights
    skills: tags                # default style for skills sections
    links: icons                # icons | text | both | none   (basics.links beside the name; none when a side-column icon row shows them)
    icons: tiles                # default style for icon rows: tiles | circles | outline | plain
    photo:
      shape: circle             # circle | rounded | square | squircle | hex | none
      size: md                  # sm | md | lg
      ring: true
      ringColor: ""             # hex; empty = automatic
      # Framing: crop the photo around a focal point. Whole percentages, no unit.
      # Move the point onto the face first, then zoom in. Sliders in Design > Photo.
      x: 50                     # 0 to 100, focal point left to right
      y: 50                     # 0 to 100, focal point top to bottom
      zoom: 100                 # 100 to 300, 100 is the whole picture
    banner:                     # banner template only
      shape: flat               # flat | slant | curve | rounded | none
      height: normal            # short | normal | tall
      pattern: none             # none | dots | grid | diagonal | blueprint
      image: ""                 # data: URI or URL behind the banner
      dim: 45                   # 0 to 90, darkens the image
    columns:
      side: left                # side column position: left | right
      width: 34                 # 24 to 45, percent of the page
