# How a flight gets from booking to landing

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv21y9go001lif06hrej9emg
> It describes who does what, in what order, and with which technology. Read the plain-language sections first; the JSON at the end is the exact, complete data.

## Summary

- 13 steps across 1 layer
- Persona: Passenger, Airline, Airport and security, Pilots and crew, Air traffic control

## How to read this file

- A process is made of **layers**. The main layer is the top level; any step of kind `subprocess` opens a detail layer with its own lanes and steps.
- **Lanes** are either persona (people/roles) or technology (systems). Each step belongs to one lane; `using` lists tools a person uses for that step.
- Step kinds: `start`, `task`, `decision` (its arrows carry the answer as a label), `subprocess`, `end`.

## How a flight gets from booking to landing

Lanes:
- Passenger: person / role (id `you`)
- Airline: person / role (id `airline`)
- Airport and security: person / role (id `airport`)
- Pilots and crew: person / role (id `crew`)
- Air traffic control: person / role (id `atc`)

Steps, in the order they run:

1. **Book a ticket** [start; Passenger; id `f1`]
   - then Check in and send a boarding pass
2. **Check in and send a boarding pass** [task; Airline; id `f2`]
   - then Bags are checked and screened
3. **Bags are checked and screened** [task; Airport and security; id `f3`]
   - then Security screening
4. **Security screening** [task; Airport and security; id `f4`]
   - then Board at the gate
5. **Board at the gate** [task; Passenger; id `f5`]
   - then Safety checks and pushback
6. **Safety checks and pushback** [task; Pilots and crew; id `f6`]
   - then Clears the plane for takeoff
7. **Clears the plane for takeoff** [task; Air traffic control; id `f7`]
   - then Climb to cruising altitude
8. **Climb to cruising altitude** [task; Pilots and crew; id `f8`]
   - then Is the weather clear on the route?
9. **Is the weather clear on the route?** [decision; Air traffic control; id `f9`]
   - if "Yes" go to Descend and land; if "No" go to Reroute around storms
10. **Descend and land** [task; Pilots and crew; id `f10`]
   - then Bags come out on the carousel
11. **Bags come out on the carousel** [task; Airport and security; id `f11`]
   - then Walk out
12. **Walk out** [end; Passenger; id `f12`]
13. **Reroute around storms** [task; Pilots and crew; id `f9a`]
   - then Descend and land

```mermaid
flowchart LR
  subgraph l_you["Passenger"]
    n_f1(["Book a ticket"])
    n_f5["Board at the gate"]
    n_f12(["Walk out"])
  end
  subgraph l_airline["Airline"]
    n_f2["Check in and send a boarding pass"]
  end
  subgraph l_airport["Airport and security"]
    n_f3["Bags are checked and screened"]
    n_f4["Security screening"]
    n_f11["Bags come out on the carousel"]
  end
  subgraph l_crew["Pilots and crew"]
    n_f6["Safety checks and pushback"]
    n_f8["Climb to cruising altitude"]
    n_f9a["Reroute around storms"]
    n_f10["Descend and land"]
  end
  subgraph l_atc["Air traffic control"]
    n_f7["Clears the plane for takeoff"]
    n_f9{"Is the weather clear on the route?"}
  end
  n_f1 --> n_f2
  n_f2 --> n_f3
  n_f3 --> n_f4
  n_f4 --> n_f5
  n_f5 --> n_f6
  n_f6 --> n_f7
  n_f7 --> n_f8
  n_f8 --> n_f9
  n_f9 -->|"Yes"| n_f10
  n_f9 -->|"No"| n_f9a
  n_f9a --> n_f10
  n_f10 --> n_f11
  n_f11 --> n_f12
```

## Full data (JSON)

```json
{
  "title": "How a flight gets from booking to landing",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "you",
          "name": "Passenger",
          "type": "person"
        },
        {
          "id": "airline",
          "name": "Airline",
          "type": "person"
        },
        {
          "id": "airport",
          "name": "Airport and security",
          "type": "person"
        },
        {
          "id": "crew",
          "name": "Pilots and crew",
          "type": "person"
        },
        {
          "id": "atc",
          "name": "Air traffic control",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "f1",
          "kind": "start",
          "lane": "you",
          "next": [
            {
              "to": "f2"
            }
          ],
          "uses": [],
          "label": "Book a ticket"
        },
        {
          "id": "f2",
          "kind": "task",
          "lane": "airline",
          "next": [
            {
              "to": "f3"
            }
          ],
          "uses": [],
          "label": "Check in and send a boarding pass"
        },
        {
          "id": "f3",
          "kind": "task",
          "lane": "airport",
          "next": [
            {
              "to": "f4"
            }
          ],
          "uses": [],
          "label": "Bags are checked and screened"
        },
        {
          "id": "f4",
          "kind": "task",
          "lane": "airport",
          "next": [
            {
              "to": "f5"
            }
          ],
          "uses": [],
          "label": "Security screening"
        },
        {
          "id": "f5",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "f6"
            }
          ],
          "uses": [],
          "label": "Board at the gate"
        },
        {
          "id": "f6",
          "kind": "task",
          "lane": "crew",
          "next": [
            {
              "to": "f7"
            }
          ],
          "uses": [],
          "label": "Safety checks and pushback"
        },
        {
          "id": "f7",
          "kind": "task",
          "lane": "atc",
          "next": [
            {
              "to": "f8"
            }
          ],
          "uses": [],
          "label": "Clears the plane for takeoff"
        },
        {
          "id": "f8",
          "kind": "task",
          "lane": "crew",
          "next": [
            {
              "to": "f9"
            }
          ],
          "uses": [],
          "label": "Climb to cruising altitude"
        },
        {
          "id": "f9",
          "kind": "decision",
          "lane": "atc",
          "next": [
            {
              "to": "f10",
              "label": "Yes"
            },
            {
              "to": "f9a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is the weather clear on the route?"
        },
        {
          "id": "f9a",
          "kind": "task",
          "lane": "crew",
          "next": [
            {
              "to": "f10"
            }
          ],
          "uses": [],
          "label": "Reroute around storms"
        },
        {
          "id": "f10",
          "kind": "task",
          "lane": "crew",
          "next": [
            {
              "to": "f11"
            }
          ],
          "uses": [],
          "label": "Descend and land"
        },
        {
          "id": "f11",
          "kind": "task",
          "lane": "airport",
          "next": [
            {
              "to": "f12"
            }
          ],
          "uses": [],
          "label": "Bags come out on the carousel"
        },
        {
          "id": "f12",
          "kind": "end",
          "lane": "you",
          "next": [],
          "uses": [],
          "label": "Walk out"
        }
      ],
      "title": "How a flight gets from booking to landing",
      "parent": null
    }
  }
}
```
