{
  "generated_at": "2026-02-02T14:07:07.909354Z",
  "screen_relationships": [
    {
      "screenshot_id": "IMG_2655",
      "screen_name": "Login",
      "feature_area": "login",
      "connects_to": [
        {
          "screen_type": "home",
          "trigger": "successful login",
          "data_passed": "user ID, user profile, organization data",
          "purpose": "To navigate to the main application interface after successful authentication."
        },
        {
          "screen_type": "signup",
          "trigger": "user selects 'Sign Up' or similar option",
          "data_passed": "None",
          "purpose": "To allow new users to create an account."
        },
        {
          "screen_type": "forgot password",
          "trigger": "user selects 'Forgot Password' or similar option",
          "data_passed": "None",
          "purpose": "To allow users to recover their account if they have forgotten their password."
        },
        {
          "screen_type": "error",
          "trigger": "invalid login credentials",
          "data_passed": "error message (e.g., 'Invalid username or password')",
          "purpose": "To inform the user of incorrect login attempts."
        }
      ],
      "depends_on": [],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2656",
          "screen_name": "Login",
          "feature_area": "login",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "This screen receives user credentials (username/email and password) as input. It sends these credentials to a backend authentication service. Upon successful authentication, it receives user data (user ID, profile information, organization data) from the backend. Upon failure, it receives an error message.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From this screen, the user can navigate to the home screen (after successful login), the signup screen, or the forgot password screen. An error message is displayed on the same screen if login fails."
        }
      ],
      "feature_dependencies": [
        "authentication",
        "user management"
      ],
      "alternative_paths": [
        {
          "description": "Users might be able to log in using third-party authentication providers (e.g., Google, Facebook).",
          "alternative_login": "Third-party authentication"
        }
      ]
    },
    {
      "screenshot_id": "IMG_2656",
      "screen_name": "Login",
      "feature_area": "login",
      "connects_to": [
        {
          "screen_type": "Home",
          "trigger": "Successful login",
          "data_passed": "User ID, employee data, shift schedule",
          "purpose": "To display the user's dashboard and shift information after successful authentication."
        },
        {
          "screen_type": "Forgot Password",
          "trigger": "User clicks 'Forgot Password'",
          "data_passed": "None",
          "purpose": "To allow the user to reset their password if they have forgotten it."
        },
        {
          "screen_type": "Error",
          "trigger": "Invalid login credentials",
          "data_passed": "Error message (e.g., 'Incorrect username or password')",
          "purpose": "To inform the user that their login attempt failed due to incorrect credentials."
        }
      ],
      "depends_on": [],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2657",
          "screen_name": "Login",
          "feature_area": "login",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap Login to proceed"
      ],
      "data_flow": "This screen receives user input (username/password). It sends this data to a backend authentication service. It receives a success/failure response and user data upon successful authentication.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "After successful login, the user is navigated to the Home screen."
        },
        {
          "pattern_type": "branching",
          "description": "If login fails, an error message is displayed, and the user remains on the login screen. The user can also navigate to the 'Forgot Password' screen."
        }
      ],
      "feature_dependencies": [
        "Authentication",
        "User profile"
      ],
      "alternative_paths": [
        {
          "description": "User might use biometric login (if available and configured)."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2657",
      "screen_name": "Login",
      "feature_area": "login",
      "connects_to": [
        {
          "screen_type": "home",
          "trigger": "successful login",
          "data_passed": "user authentication token, user profile data",
          "purpose": "To navigate the user to the main application screen after successful authentication."
        },
        {
          "screen_type": "forgot password",
          "trigger": "user clicks 'forgot password' link",
          "data_passed": "none",
          "purpose": "To allow the user to reset their password if they have forgotten it."
        },
        {
          "screen_type": "signup",
          "trigger": "user clicks 'sign up' link",
          "data_passed": "none",
          "purpose": "To allow new users to create an account."
        },
        {
          "screen_type": "error",
          "trigger": "unsuccessful login",
          "data_passed": "error message (e.g., invalid credentials)",
          "purpose": "To inform the user about login failures."
        }
      ],
      "depends_on": [
        {
          "screen_type": "login",
          "required_data": "none",
          "purpose": "This is the initial login screen, so it doesn't depend on any previous screen."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2658",
          "screen_name": "Login",
          "feature_area": "login",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "This screen receives user input (username/email and password). It sends this data to the authentication service. Upon successful authentication, it receives a user authentication token and profile data. Upon failure, it receives an error message.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From this screen, the user can navigate to the home screen (after successful login), the 'forgot password' screen, or the 'sign up' screen. An error screen may also appear."
        }
      ],
      "feature_dependencies": [
        "authentication",
        "user accounts"
      ],
      "alternative_paths": [
        "Users might be able to log in using third-party authentication providers (e.g., Google, Facebook).",
        "Users might be able to skip login and browse a limited version of the app as a guest."
      ]
    },
    {
      "screenshot_id": "IMG_2658",
      "screen_name": "Login",
      "feature_area": "login",
      "connects_to": [
        {
          "screen_type": "Home",
          "trigger": "Successful login",
          "data_passed": "User ID, user profile data, authentication token",
          "purpose": "To navigate the user to the main application interface after successful authentication."
        },
        {
          "screen_type": "Forgot Password",
          "trigger": "User clicks 'Forgot Password' link",
          "data_passed": "None",
          "purpose": "To allow the user to reset their password if they have forgotten it."
        },
        {
          "screen_type": "Sign Up",
          "trigger": "User clicks 'Sign Up' link",
          "data_passed": "None",
          "purpose": "To allow new users to create an account."
        },
        {
          "screen_type": "Error",
          "trigger": "Invalid login credentials",
          "data_passed": "Error message (e.g., 'Invalid username or password')",
          "purpose": "To inform the user that their login attempt failed."
        }
      ],
      "depends_on": [],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2659",
          "screen_name": "Login",
          "feature_area": "login",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "This screen receives user input (username/email and password). It sends this data to the authentication service. It receives a success/failure response and user data upon successful authentication.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From the login screen, the user can navigate to the home screen (upon successful login), the 'Forgot Password' screen, or the 'Sign Up' screen. An error screen is also possible."
        }
      ],
      "feature_dependencies": [
        "Authentication",
        "User Account Management"
      ],
      "alternative_paths": [
        "User might use social login (e.g., Google, Facebook) if implemented.",
        "User might be automatically logged in if 'remember me' functionality is enabled and they have previously logged in."
      ]
    },
    {
      "screenshot_id": "IMG_2659",
      "screen_name": "Login",
      "feature_area": "login",
      "connects_to": [
        {
          "screen_type": "Home",
          "trigger": "Successful login",
          "data_passed": "User ID, authentication token, user profile data",
          "purpose": "To grant access to the app's main functionality after successful authentication."
        },
        {
          "screen_type": "Forgot Password",
          "trigger": "Tapping 'Forgot password?' link",
          "data_passed": "None",
          "purpose": "To initiate the password recovery process."
        },
        {
          "screen_type": "Error",
          "trigger": "Invalid login credentials",
          "data_passed": "Error message (e.g., 'Invalid email/password')",
          "purpose": "To inform the user about incorrect login attempts."
        }
      ],
      "depends_on": [],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2660",
          "screen_name": "Workspace Selection",
          "feature_area": "login",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap Login button to access the app",
        "Tap Forgot password to reset password"
      ],
      "data_flow": "This screen receives user input (email/phone number and password). It sends this data to the authentication service. It receives a success/failure response and user data upon successful authentication.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "After entering credentials, the user proceeds to the Home screen upon successful login or receives an error message upon failure."
        },
        {
          "pattern_type": "branching",
          "description": "The user can choose to navigate to the 'Forgot Password' screen."
        }
      ],
      "feature_dependencies": [
        "Authentication",
        "User Account Management"
      ],
      "alternative_paths": [
        "User might use a different login method (e.g., social login) if available.",
        "User might create a new account if they don't have one."
      ]
    },
    {
      "screenshot_id": "IMG_2660",
      "screen_name": "Workspace Selection",
      "feature_area": "login",
      "connects_to": [
        {
          "screen_type": "Main App Screen",
          "trigger": "User selects a workspace (Ordio Unternehmensgruppe or Stadion Demo)",
          "data_passed": "Workspace ID, User ID, potentially user roles/permissions for the selected workspace",
          "purpose": "To log the user into the selected workspace and display the main app interface."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Login",
          "required_data": "User credentials (username/password or other authentication token)",
          "purpose": "To ensure the user is authenticated before allowing them to select a workspace."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2661",
          "screen_name": "Onboarding",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "This screen receives the user's authentication information from the login screen. It displays a list of available workspaces for the user. Upon selection, the selected workspace ID and user ID are passed to the main app screen.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "After successful login, the user is presented with a choice of workspaces. Selecting a workspace navigates the user to the main app screen for that workspace."
        }
      ],
      "feature_dependencies": [
        "Authentication",
        "Workspace Management"
      ],
      "alternative_paths": [
        "If the user only has access to one workspace, this screen might be skipped and the user automatically logged into that workspace.",
        "If the user has 'Remember selection' enabled, this screen might be skipped and the user automatically logged into the previously selected workspace."
      ]
    },
    {
      "screenshot_id": "IMG_2661",
      "screen_name": "Onboarding",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Onboarding",
          "trigger": "Tap \"Next\"",
          "data_passed": "None",
          "purpose": "Progress to the next onboarding screen"
        },
        {
          "screen_type": "Main Dashboard",
          "trigger": "Complete onboarding",
          "data_passed": "User account information, workspace information",
          "purpose": "Take the user to the main app after onboarding"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Workspace Selection",
          "required_data": "User account information, list of workspaces",
          "purpose": "To ensure the user has selected a workspace before onboarding"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2662",
          "screen_name": "Onboarding 1",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap 'Next' to proceed through onboarding"
      ],
      "data_flow": "This screen receives user account and workspace information from the previous screen. It doesn't send any data to the next screen, but it does signal that the onboarding process is complete.",
      "navigation_patterns": [
        {
          "pattern_type": "Linear",
          "description": "The user progresses through the onboarding screens in a linear fashion by tapping the \"Next\" button."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2662",
      "screen_name": "Onboarding 1",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Onboarding 2",
          "trigger": "Tap 'Next'",
          "data_passed": "None",
          "purpose": "Progress to the next onboarding screen"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Workspace Selection",
          "required_data": "Workspace ID",
          "purpose": "To know which workspace the user is onboarding into"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2663",
          "screen_name": "Profile Onboarding",
          "feature_area": "profile",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap Next to proceed"
      ],
      "data_flow": "This screen receives the workspace ID from the previous screen. It displays information about the calendar feature. No data is sent out.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user progresses through the onboarding flow by tapping 'Next'."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2663",
      "screen_name": "Profile Onboarding",
      "feature_area": "profile",
      "connects_to": [
        {
          "screen_type": "Profile Setup",
          "trigger": "Tap \"Let's go!\"",
          "data_passed": "None",
          "purpose": "Initiate the profile setup process"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Onboarding 1",
          "required_data": "None",
          "purpose": "To ensure the user has seen the previous onboarding screen before proceeding to the profile onboarding screen."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2664",
          "screen_name": "Dashboard",
          "feature_area": "dashboard",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap Let's go! to continue"
      ],
      "data_flow": "This screen receives no data. It triggers the profile setup flow.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user progresses linearly through the onboarding flow by tapping the \"Let's go!\" button."
        }
      ],
      "feature_dependencies": [
        "profile"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2664",
      "screen_name": "Dashboard",
      "feature_area": "dashboard",
      "connects_to": [
        {
          "screen_type": "Calendar",
          "trigger": "Tap on 'Calendar' navigation item",
          "data_passed": "None",
          "purpose": "Navigate to the calendar view"
        },
        {
          "screen_type": "Shift Detail",
          "trigger": "Tap on an open shift",
          "data_passed": "Shift details (date, time, location, job)",
          "purpose": "View details of an open shift"
        },
        {
          "screen_type": "Profile",
          "trigger": "Tap on the profile icon (FK)",
          "data_passed": "User profile information",
          "purpose": "View and edit user profile"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Login",
          "required_data": "User authentication status",
          "purpose": "Ensure the user is logged in before displaying the dashboard"
        },
        {
          "screen_type": "Workspace Selection",
          "required_data": "Selected workspace ID",
          "purpose": "Display data relevant to the selected workspace"
        },
        {
          "screen_type": "Onboarding",
          "required_data": "Onboarding completion status",
          "purpose": "Ensure the user has completed the onboarding process"
        },
        {
          "screen_type": "Profile Onboarding",
          "required_data": "User profile information",
          "purpose": "Ensure the user has completed the profile onboarding process"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2665",
          "screen_name": "Dashboard",
          "feature_area": "dashboard",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "Incoming: User authentication status, workspace ID, shift data, salary data, weather data. Outgoing: Navigation actions to other screens.",
      "navigation_patterns": [
        {
          "pattern_type": "Tab Navigation",
          "description": "Uses a tab bar to navigate between 'Home' (this dashboard) and 'Calendar'."
        },
        {
          "pattern_type": "Direct Navigation",
          "description": "Tapping on elements like open shifts or the profile icon leads directly to the corresponding screens."
        }
      ],
      "feature_dependencies": [
        "Authentication",
        "Workspace Management",
        "Shift Management",
        "Salary Calculation",
        "Weather Integration",
        "User Profile"
      ],
      "alternative_paths": [
        "Users might access the calendar directly from a notification.",
        "Users might access the profile screen from a settings menu."
      ]
    },
    {
      "screenshot_id": "IMG_2665",
      "screen_name": "Dashboard",
      "feature_area": "dashboard",
      "connects_to": [
        {
          "screen_type": "Calendar",
          "trigger": "Tap on 'Calendar' tab",
          "data_passed": "None",
          "purpose": "Navigate to the calendar view"
        },
        {
          "screen_type": "Salary Details",
          "trigger": "Tap on the 'Salary' card",
          "data_passed": "Salary data (2.365 €)",
          "purpose": "View detailed salary information"
        },
        {
          "screen_type": "Weather Details",
          "trigger": "Tap on the 'Sunny' card",
          "data_passed": "Weather data (-4°)",
          "purpose": "View detailed weather information"
        },
        {
          "screen_type": "Broadcast Details",
          "trigger": "Tap on the 'Broadcasts' card",
          "data_passed": "Broadcast message details (Felix Knoerzer, Hallo zusammen Plan für die KW3 ist da)",
          "purpose": "View the full broadcast message"
        },
        {
          "screen_type": "Documents List",
          "trigger": "Tap on the 'Documents' card",
          "data_passed": "Number of documents (39)",
          "purpose": "View the list of documents"
        },
        {
          "screen_type": "Checklist Details",
          "trigger": "Tap on the 'Checklists' card",
          "data_passed": "Checklist data (HACCP, 0/4 tasks completed)",
          "purpose": "View the checklist details and tasks"
        },
        {
          "screen_type": "Holiday & Absences Details",
          "trigger": "Tap on the 'Holiday & Absences' card",
          "data_passed": "Holiday & Absences data (77.6 days)",
          "purpose": "View detailed holiday and absence information"
        },
        {
          "screen_type": "Event Details",
          "trigger": "Tap on the 'Events' card",
          "data_passed": "Event data (Backstreet Boys are b..., 24.01.2026 - 25.01.2026)",
          "purpose": "View the event details"
        },
        {
          "screen_type": "Tips Details",
          "trigger": "Tap on the 'Tips' card",
          "data_passed": "Tips data (61,09 €)",
          "purpose": "View detailed tips information"
        },
        {
          "screen_type": "Profile",
          "trigger": "Tap on the profile icon (FK)",
          "data_passed": "User profile data",
          "purpose": "Navigate to the user profile"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Workspace Selection",
          "required_data": "Workspace ID",
          "purpose": "To display data relevant to the selected workspace"
        },
        {
          "screen_type": "Onboarding",
          "required_data": "User profile data",
          "purpose": "To personalize the dashboard with user-specific information"
        },
        {
          "screen_type": "Profile Onboarding",
          "required_data": "User profile data",
          "purpose": "To personalize the dashboard with user-specific information"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2666",
          "screen_name": "Dashboard",
          "feature_area": "dashboard",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "The screen receives data about salary, weather, broadcasts, documents, checklists, holidays, events, and tips from backend services. User interactions (taps) trigger navigation to other screens, passing relevant data to those screens.",
      "navigation_patterns": [
        {
          "pattern_type": "Branching",
          "description": "From the dashboard, the user can navigate to various detail screens by tapping on the corresponding cards. The user can also navigate to the calendar or profile screen."
        }
      ],
      "feature_dependencies": [
        "Salary",
        "Weather",
        "Broadcasts",
        "Documents",
        "Checklists",
        "Holidays & Absences",
        "Events",
        "Tips",
        "Calendar",
        "User Profile"
      ],
      "alternative_paths": [
        "Users might access specific detail screens (e.g., Salary Details) directly through notifications or deep links instead of navigating from the dashboard."
      ]
    },
    {
      "screenshot_id": "IMG_2666",
      "screen_name": "Dashboard",
      "feature_area": "dashboard",
      "connects_to": [
        {
          "screen_type": "Checklist",
          "trigger": "Tap on the HACCP checklist card",
          "data_passed": "HACCP checklist data",
          "purpose": "To view and interact with the HACCP checklist"
        },
        {
          "screen_type": "Calendar",
          "trigger": "Tap on the Calendar tab",
          "data_passed": "Current date",
          "purpose": "To view the calendar and scheduled events"
        },
        {
          "screen_type": "Event Detail",
          "trigger": "Tap on the Backstreet Boys event card",
          "data_passed": "Backstreet Boys event details",
          "purpose": "To view the details of the Backstreet Boys event"
        },
        {
          "screen_type": "Tips Detail",
          "trigger": "Tap on the Tips card",
          "data_passed": "Tips data",
          "purpose": "To view the details of the tips"
        },
        {
          "screen_type": "Referral Screen",
          "trigger": "Tap on the Recommend Ordio card",
          "data_passed": "Referral information",
          "purpose": "To initiate the referral process"
        },
        {
          "screen_type": "Feature Vote",
          "trigger": "Tap on the Feature Vote card",
          "data_passed": "None",
          "purpose": "To allow users to request and vote on new features"
        },
        {
          "screen_type": "Edit Dashboard",
          "trigger": "Tap on the Edit Dashboard button",
          "data_passed": "Current dashboard configuration",
          "purpose": "To allow users to customize the dashboard"
        },
        {
          "screen_type": "Profile",
          "trigger": "Tap on the profile icon (FK)",
          "data_passed": "User profile data",
          "purpose": "To view and edit the user's profile"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Onboarding",
          "required_data": "User authentication and profile data",
          "purpose": "To ensure the user is authenticated and has a profile before accessing the dashboard"
        },
        {
          "screen_type": "Profile Onboarding",
          "required_data": "User profile data",
          "purpose": "To ensure the user has completed their profile before accessing the dashboard"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2667",
          "screen_name": "Edit Dashboard",
          "feature_area": "dashboard",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap checklists card for details",
        "Tap holiday & absences card for details",
        "Tap events card for details",
        "Tap tips card for details",
        "Tap recommend Ordio card for details",
        "Tap feature vote card for details",
        "Tap Edit Dashboard to customize"
      ],
      "data_flow": "The screen receives data about checklists, events, tips, referral bonuses, and feature votes from the backend. It sends data to the backend when the user interacts with the dashboard, such as voting on a feature or editing the dashboard configuration.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From the dashboard, the user can navigate to various feature areas such as checklists, events, tips, referral, feature vote, profile, or edit the dashboard."
        },
        {
          "pattern_type": "tabbed",
          "description": "The user can switch between the 'Home' and 'Calendar' views using the tab bar."
        }
      ],
      "feature_dependencies": [
        "Checklists",
        "Events",
        "Tips",
        "Referral Program",
        "Feature Voting",
        "User Profile"
      ],
      "alternative_paths": [
        {
          "description": "Users might reach the checklist, event, or tips details screens through notifications or other entry points within the app."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2667",
      "screen_name": "Edit Dashboard",
      "feature_area": "dashboard",
      "connects_to": [
        {
          "screen_type": "Dashboard",
          "trigger": "Tap the 'X' button",
          "data_passed": "Updated dashboard configuration (enabled/disabled widgets, widget order)",
          "purpose": "Return to the main dashboard with the applied changes."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Dashboard",
          "required_data": "Current dashboard configuration (enabled/disabled widgets, widget order)",
          "purpose": "To display the current dashboard configuration and allow the user to edit it."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2668",
          "screen_name": "Edit Dashboard",
          "feature_area": "dashboard",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close and return to dashboard"
      ],
      "data_flow": "The screen receives the current dashboard configuration from the Dashboard screen. The user can modify the configuration by enabling/disabling widgets and reordering them. When the user taps the 'X' button, the updated configuration is sent back to the Dashboard screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "The 'Edit Dashboard' screen is presented as a modal overlay on top of the Dashboard screen. The user can dismiss the modal by tapping the 'X' button, which returns them to the Dashboard screen."
        }
      ],
      "feature_dependencies": [
        "dashboard",
        "widget configuration"
      ],
      "alternative_paths": [
        "Users might not reach this screen if they are satisfied with the default dashboard configuration.",
        "Users might access a similar settings screen from a profile or settings menu."
      ]
    },
    {
      "screenshot_id": "IMG_2668",
      "screen_name": "Edit Dashboard",
      "feature_area": "dashboard",
      "connects_to": [
        {
          "screen_type": "Dashboard",
          "trigger": "Tap the 'X' button",
          "data_passed": "Updated dashboard settings (enabled/disabled widgets)",
          "purpose": "Return to the main dashboard with the selected widgets displayed."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Dashboard",
          "required_data": "Current dashboard settings (enabled/disabled widgets)",
          "purpose": "To display the current state of the dashboard widgets and allow the user to modify them."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2669",
          "screen_name": "Edit Dashboard",
          "feature_area": "dashboard",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close"
      ],
      "data_flow": "The screen receives the current dashboard settings (which widgets are enabled/disabled). The user can toggle the switches to enable or disable widgets. When the user taps the 'X' button, the updated settings are sent back to the dashboard.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "The 'Edit Dashboard' screen is presented as a modal overlay on top of the main dashboard. Tapping the 'X' button dismisses the modal and returns to the dashboard."
        }
      ],
      "feature_dependencies": [
        "dashboard",
        "user settings"
      ],
      "alternative_paths": [
        "The user might not need to edit the dashboard and can continue using the default configuration."
      ]
    },
    {
      "screenshot_id": "IMG_2669",
      "screen_name": "Edit Dashboard",
      "feature_area": "dashboard",
      "connects_to": [
        {
          "screen_type": "Dashboard",
          "trigger": "Tap the 'X' icon",
          "data_passed": "Updated dashboard configuration (enabled/disabled widgets)",
          "purpose": "Return to the main dashboard with the changes made in the edit screen."
        },
        {
          "screen_type": "Dashboard",
          "trigger": "Tap 'Reset to Default Layout'",
          "data_passed": "Default dashboard configuration",
          "purpose": "Return to the main dashboard with the default widgets enabled."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Dashboard",
          "required_data": "Current dashboard configuration (enabled/disabled widgets)",
          "purpose": "To display the current state of the dashboard widgets and allow the user to edit them."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2670",
          "screen_name": "Shift calendar",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close"
      ],
      "data_flow": "The screen receives the current dashboard configuration from the main dashboard. The user can then toggle widgets on or off. When the user exits the screen, the updated configuration is sent back to the main dashboard.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "The 'Edit Dashboard' screen is presented as a modal overlay on top of the main dashboard. The user can dismiss the modal to return to the dashboard."
        }
      ],
      "feature_dependencies": [
        "dashboard",
        "checklists",
        "vacation",
        "events",
        "tips",
        "feature voting"
      ],
      "alternative_paths": [
        {
          "description": "Instead of editing the dashboard, the user might choose to use the dashboard as is, without making any changes."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2670",
      "screen_name": "Shift calendar",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "create shift",
          "trigger": "Tap the '+' button",
          "data_passed": "Selected date and time (if any)",
          "purpose": "To allow the user to create a new shift"
        },
        {
          "screen_type": "filter shifts",
          "trigger": "Tap the filter icon",
          "data_passed": "None",
          "purpose": "To allow the user to filter the shifts displayed on the calendar"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Dashboard",
          "required_data": "User authentication, restaurant information, existing shifts",
          "purpose": "To display the calendar with the correct shifts for the user and restaurant"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2671",
          "screen_name": "Shift calendar",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap date to view schedule",
        "Tap plus button to add shift",
        "Tap filter button to filter shifts"
      ],
      "data_flow": "Incoming: User authentication, restaurant information, existing shifts. Outgoing: Shift creation requests, filter requests.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From the dashboard, the user can navigate to the shift calendar. From the shift calendar, the user can navigate to create a shift or filter shifts."
        },
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the dashboard."
        }
      ],
      "feature_dependencies": [
        "user authentication",
        "restaurant management",
        "shift management"
      ],
      "alternative_paths": [
        "The user could potentially create a shift directly from the dashboard (if such a feature exists)."
      ]
    },
    {
      "screenshot_id": "IMG_2671",
      "screen_name": "Shift calendar",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "shift detail",
          "trigger": "Tap on a shift event",
          "data_passed": "Shift details (time, employee, location, task)",
          "purpose": "View details of a specific shift"
        },
        {
          "screen_type": "add shift",
          "trigger": "Tap on the '+' button",
          "data_passed": "Selected date",
          "purpose": "Create a new shift for the selected date"
        },
        {
          "screen_type": "filter shifts",
          "trigger": "Tap on the filter icon",
          "data_passed": "None",
          "purpose": "Filter shifts based on criteria (e.g., employee, location)"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Dashboard",
          "required_data": "Employee list, location list, shift data",
          "purpose": "To display the calendar with existing shifts and allow for shift creation/modification"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2672",
          "screen_name": "Shift calendar",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap date to view day",
        "Tap shift for details",
        "Tap + to add shift",
        "Tap filter to filter shifts"
      ],
      "data_flow": "Incoming: Employee list, location list, existing shift data. Outgoing: Shift creation/modification requests.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From the calendar, users can navigate to shift details, add a new shift, or filter shifts."
        },
        {
          "pattern_type": "back",
          "description": "Users can return to the dashboard."
        }
      ],
      "feature_dependencies": [
        "schichtplanung",
        "employee management",
        "location management"
      ],
      "alternative_paths": [
        "Users might create shifts directly from the dashboard if that functionality exists.",
        "Users might import shifts from an external system."
      ]
    },
    {
      "screenshot_id": "IMG_2672",
      "screen_name": "Shift calendar",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "Request Absence",
          "trigger": "Tap 'Request Absence'",
          "data_passed": "Selected date and time",
          "purpose": "To allow the user to request time off"
        },
        {
          "screen_type": "Set Availability",
          "trigger": "Tap 'Set Availability'",
          "data_passed": "Selected date and time",
          "purpose": "To allow the user to set their availability for work"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Edit Dashboard",
          "required_data": "User authentication, restaurant information, employee list",
          "purpose": "To display the shift calendar with relevant data"
        },
        {
          "screen_type": "Shift calendar",
          "required_data": "Date selection",
          "purpose": "To display the selected date's shift calendar"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2673",
          "screen_name": "Absence Request",
          "feature_area": "abwesenheiten",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap time slot to set availability",
        "Tap time slot to request absence",
        "Tap employee to view schedule"
      ],
      "data_flow": "Incoming: User authentication, restaurant information, employee list, selected date. Outgoing: Request absence, set availability.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From the shift calendar, the user can either request absence or set availability."
        },
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the previous screen (Edit Dashboard or Shift calendar)."
        }
      ],
      "feature_dependencies": [
        "User authentication",
        "Restaurant management",
        "Employee management",
        "Shift scheduling"
      ],
      "alternative_paths": [
        "The user might reach this screen by selecting a date from a different view (e.g., a monthly calendar view).",
        "The user might accomplish the same goal (requesting absence or setting availability) through a different interface (e.g., a dedicated absence request form)."
      ]
    },
    {
      "screenshot_id": "IMG_2673",
      "screen_name": "Absence Request",
      "feature_area": "abwesenheiten",
      "connects_to": [
        {
          "screen_type": "confirmation",
          "trigger": "User taps 'Request absence'",
          "data_passed": "Absence request details (start date, end date, half-day options, type of absence, note)",
          "purpose": "To confirm the absence request has been submitted"
        },
        {
          "screen_type": "error",
          "trigger": "API error when submitting absence request",
          "data_passed": "Error message",
          "purpose": "To inform the user that the absence request failed"
        },
        {
          "screen_type": "shift calendar",
          "trigger": "User taps the 'X' button",
          "data_passed": "None",
          "purpose": "To return to the shift calendar without submitting the request"
        }
      ],
      "depends_on": [
        {
          "screen_type": "shift calendar",
          "required_data": "User's shift calendar data, user authentication",
          "purpose": "To allow the user to request absence from the calendar view"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2674",
          "screen_name": "Absence Request",
          "feature_area": "abwesenheiten",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close"
      ],
      "data_flow": "This screen receives user's shift calendar data and user authentication from the previous screen. The user inputs absence request details (start date, end date, half-day options, type of absence, note). This data is then sent to the backend when the user taps 'Request absence'.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the shift calendar. It can be dismissed by tapping the 'X' button or by submitting the request."
        }
      ],
      "feature_dependencies": [
        "abwesenheiten",
        "shift calendar"
      ],
      "alternative_paths": [
        {
          "description": "User might not request absence at all and remain on the shift calendar."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2674",
      "screen_name": "Absence Request",
      "feature_area": "abwesenheiten",
      "connects_to": [
        {
          "screen_type": "confirmation",
          "trigger": "Successful submission of absence request",
          "data_passed": "Absence details (start date, end date, type of absence, attachments)",
          "purpose": "To confirm that the absence request has been successfully submitted."
        },
        {
          "screen_type": "error",
          "trigger": "Invalid input or submission failure",
          "data_passed": "Error message describing the issue",
          "purpose": "To inform the user about errors during submission."
        },
        {
          "screen_type": "camera",
          "trigger": "Tap on the 'Camera' button",
          "data_passed": "None",
          "purpose": "To allow the user to take a photo and attach it to the absence request."
        },
        {
          "screen_type": "gallery",
          "trigger": "Tap on the 'Gallery' button",
          "data_passed": "None",
          "purpose": "To allow the user to select an image from their gallery and attach it to the absence request."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Shift calendar",
          "required_data": "User authentication and shift calendar data",
          "purpose": "To ensure the user is logged in and to provide context for the absence request (e.g., to check for conflicts)."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2675",
          "screen_name": "Shift Calendar",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close",
        "Select absence type",
        "Select start date",
        "Select end date",
        "Add image from camera",
        "Add image from gallery"
      ],
      "data_flow": "This screen receives user authentication and shift calendar data from previous screens. The user inputs absence details (start date, end date, type of absence, attachments). This data is then submitted to the server for processing. The server returns a confirmation or error message.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the shift calendar. The user can dismiss the modal by tapping the 'X' button or by submitting the absence request."
        }
      ],
      "feature_dependencies": [
        "authentication",
        "shift_calendar",
        "camera",
        "gallery"
      ],
      "alternative_paths": [
        {
          "description": "The user might not request absence at all and navigate back to the shift calendar."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2675",
      "screen_name": "Shift Calendar",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "Partly Available Options",
          "trigger": "Tapping 'Partly Available'",
          "data_passed": "Date (Wednesday, 21. January)",
          "purpose": "To allow the user to specify the partial availability for the selected date."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Shift calendar",
          "required_data": "Employee shifts and availability data for the selected month",
          "purpose": "To display the shift calendar with employee availability."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2676",
          "screen_name": "Calendar View Selection",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap a day to set availability",
        "Tap the minus button to remove a shift",
        "Tap the filter button to filter shifts"
      ],
      "data_flow": "This screen receives employee shift and availability data from the backend. It allows the user to modify the availability for a specific date. The updated availability data is then sent back to the backend.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "The availability options appear as a modal overlay on the shift calendar screen."
        },
        {
          "pattern_type": "back",
          "description": "The user can dismiss the modal by selecting an option or tapping outside the modal."
        }
      ],
      "feature_dependencies": [
        "schichtplanung",
        "availability management"
      ],
      "alternative_paths": [
        "The user could navigate to a different date on the calendar to modify availability.",
        "The user could modify availability through a different interface, such as a profile settings page."
      ]
    },
    {
      "screenshot_id": "IMG_2676",
      "screen_name": "Calendar View Selection",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "Shift calendar",
          "trigger": "Selecting a view (Agenda or Timeline) and closing the modal",
          "data_passed": "Selected calendar view (Agenda or Timeline), filter settings (Sync private calendar, Restaurant Bachingen, Veranstaltungshalle 4711)",
          "purpose": "To update the shift calendar with the selected view and filter settings."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Shift calendar",
          "required_data": "Current date, list of shifts, calendar filter settings",
          "purpose": "To display the current calendar view and filter settings."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2677",
          "screen_name": "Shift calendar",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close the view selection",
        "Select Agenda View",
        "Select Timeline View"
      ],
      "data_flow": "This screen receives the current calendar view and filter settings from the shift calendar screen. The user can then select a different calendar view (Agenda or Timeline) and modify the filter settings. The selected view and filter settings are then passed back to the shift calendar screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen is presented as a modal overlay on top of the shift calendar screen. The user can close the modal by tapping the 'X' button or by selecting a view and closing the modal, which returns them to the shift calendar screen with the updated view."
        }
      ],
      "feature_dependencies": [
        "schichtplanung",
        "calendar filtering",
        "calendar view selection"
      ],
      "alternative_paths": [
        {
          "description": "Users can achieve a similar goal by using the filter icon on the main calendar view to filter events."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2677",
      "screen_name": "Shift calendar",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "Available",
          "trigger": "Tap on the 'Available' button",
          "data_passed": "Date (Wed 21), User ID",
          "purpose": "To mark the user as available for shifts on the selected date."
        },
        {
          "screen_type": "Authorized",
          "trigger": "Tap on the 'Authorized' button",
          "data_passed": "Date (Wed 21), User ID",
          "purpose": "To mark the user as authorized for shifts on the selected date."
        },
        {
          "screen_type": "Add Shift",
          "trigger": "Tap on the '+' button",
          "data_passed": "Date (Wed 21)",
          "purpose": "To create a new shift on the selected date."
        },
        {
          "screen_type": "Filter Shifts",
          "trigger": "Tap on the filter button",
          "data_passed": "None",
          "purpose": "To filter the shifts displayed on the calendar."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Calendar View Selection",
          "required_data": "Selected date (e.g., January 21, 2026)",
          "purpose": "To display the shifts for the selected date."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2678",
          "screen_name": "Shift details",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap date to view shifts",
        "Tap shift for details",
        "Tap + to add shift",
        "Tap filter icon to filter shifts"
      ],
      "data_flow": "Incoming: Selected date from the calendar view. Outgoing: User availability/authorization status, new shift creation requests, shift filter requests.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From the shift calendar, the user can navigate to mark themselves as available/authorized, add a new shift, or filter the shifts displayed."
        },
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the calendar view selection screen."
        }
      ],
      "feature_dependencies": [
        "user authentication",
        "shift management",
        "availability management",
        "authorization management"
      ],
      "alternative_paths": [
        {
          "description": "Users might reach this screen by navigating from a different part of the app that also displays a calendar, such as a team schedule or personal schedule."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2678",
      "screen_name": "Shift details",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "Summary",
          "trigger": "Tap on 'Summary'",
          "data_passed": "Shift details (employee, time, location)",
          "purpose": "View a summary of the shift details"
        },
        {
          "screen_type": "Change request",
          "trigger": "Tap on 'Change request'",
          "data_passed": "Shift details (employee, time, location)",
          "purpose": "Initiate a change request for the shift"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Shift calendar",
          "required_data": "Shift ID",
          "purpose": "To display the details of a specific shift selected from the calendar"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2679",
          "screen_name": "Change Request",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap Summary to view shift summary",
        "Tap Change request to request a change"
      ],
      "data_flow": "The screen receives shift details (employee, time, location) from the shift calendar. It allows the user to view a summary or initiate a change request, potentially sending data back to the server for processing.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From the shift details screen, the user can navigate to either the summary screen or the change request screen."
        },
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the shift calendar."
        }
      ],
      "feature_dependencies": [
        "schichtplanung",
        "absence management (potentially, if change request involves absence)"
      ],
      "alternative_paths": [
        "The user might be able to view shift details from a notification or a task list."
      ]
    },
    {
      "screenshot_id": "IMG_2679",
      "screen_name": "Change Request",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "shift calendar",
          "trigger": "Submit change request",
          "data_passed": "Updated shift details (start time, end time, justification)",
          "purpose": "To reflect the requested changes in the shift calendar view"
        },
        {
          "screen_type": "confirmation",
          "trigger": "Submit change request",
          "data_passed": "Confirmation message indicating the change request has been submitted",
          "purpose": "To provide feedback to the user that their request has been successfully submitted"
        },
        {
          "screen_type": "error",
          "trigger": "Submit change request (if data is invalid or submission fails)",
          "data_passed": "Error message describing the reason for failure",
          "purpose": "To inform the user of any errors during submission and guide them to correct them"
        },
        {
          "screen_type": "shift details",
          "trigger": "Tap the 'X' button",
          "data_passed": "None",
          "purpose": "To return to the shift details screen without saving any changes"
        }
      ],
      "depends_on": [
        {
          "screen_type": "shift details",
          "required_data": "Shift start time, end time, date, and associated employee",
          "purpose": "To pre-populate the change request form with the existing shift details"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2680",
          "screen_name": "Shift Details",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap 'X' to close"
      ],
      "data_flow": "The screen receives shift details (start, end, date, employee) from the shift details screen. The user can modify the start and end times and provide a justification. Upon submission, the updated shift details and justification are sent to the server for processing.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the shift details screen."
        },
        {
          "pattern_type": "back",
          "description": "Tapping the 'X' button closes the modal and returns to the shift details screen."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "shift management"
      ],
      "alternative_paths": [
        {
          "description": "Instead of submitting a change request, the user might cancel the request and leave the shift details unchanged.",
          "path": "Tap the 'X' button to close the modal without submitting."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2680",
      "screen_name": "Shift Details",
      "feature_area": "schichtplanung",
      "connects_to": [],
      "depends_on": [
        {
          "screen_type": "Shift Calendar",
          "required_data": "Selected date, employee shifts for that date",
          "purpose": "To display details of a selected shift from the calendar."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2681",
          "screen_name": "Shift calendar",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "Receives shift details (time, location, availability) from the shift calendar. Displays this information to the user. No data is sent out from this screen in the current state.",
      "navigation_patterns": [
        {
          "pattern_type": "back",
          "description": "User can navigate back to the shift calendar."
        }
      ],
      "feature_dependencies": [
        "schichtplanung"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2681",
      "screen_name": "Shift calendar",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "shift detail",
          "trigger": "Tapping on a shift (e.g., Jonas Ludwig's shift)",
          "data_passed": "Shift details (employee name, time, location, shift type)",
          "purpose": "To view the details of a specific shift"
        },
        {
          "screen_type": "add shift",
          "trigger": "Tapping the '+' button",
          "data_passed": "Date (Wed 21), potentially user preferences",
          "purpose": "To create a new shift for the selected date"
        },
        {
          "screen_type": "filter/sort",
          "trigger": "Tapping the filter/sort button",
          "data_passed": "None initially, but user selections will be passed back",
          "purpose": "To filter or sort the displayed shifts"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Calendar View Selection",
          "required_data": "Selected date (e.g., January 21, 2026)",
          "purpose": "To display shifts for the selected date"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2682",
          "screen_name": "Calendar Day View",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap date to view shifts",
        "Tap shift for details"
      ],
      "data_flow": "The screen receives the selected date from the calendar view. It displays shift information fetched from a backend service based on the selected date. User interactions (e.g., adding a shift, filtering) trigger updates to the backend and refresh the displayed shift list.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From the calendar view, the user selects a date, leading to this screen. From here, the user can navigate to shift details, add a shift, or filter/sort the shifts."
        },
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the calendar view by tapping the 'Home' button or using the system back button."
        }
      ],
      "feature_dependencies": [
        "schichtplanung",
        "user authentication",
        "data synchronization"
      ],
      "alternative_paths": [
        {
          "description": "Instead of selecting a date from the calendar, the user might be able to navigate to this screen from a dashboard or a list of employees.",
          "path": "Dashboard -> Employee List -> Shift Calendar (for selected employee)"
        }
      ]
    },
    {
      "screenshot_id": "IMG_2682",
      "screen_name": "Calendar Day View",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "Shift calendar",
          "trigger": "Selecting a different day in the calendar",
          "data_passed": "Selected date",
          "purpose": "To navigate to the day view for the selected date"
        },
        {
          "screen_type": "Shift details",
          "trigger": "Tapping on the Felix Knoerzer shift",
          "data_passed": "Shift details (employee, time, location)",
          "purpose": "To view the details of the selected shift"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Shift calendar",
          "required_data": "Current date, shift data for the month",
          "purpose": "To display the calendar and highlight the selected day"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2683",
          "screen_name": "Availability Editor",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "This screen receives the selected date from the calendar view and displays shift information for that date. It can also send the selected shift to the shift details screen.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From the calendar day view, the user can navigate to the shift details screen by tapping on a shift or navigate to a different day by selecting it on the calendar."
        },
        {
          "pattern_type": "back",
          "description": "The user can return to the shift calendar by using the back navigation."
        }
      ],
      "feature_dependencies": [
        "schichtplanung",
        "calendar"
      ],
      "alternative_paths": [
        "Instead of tapping on a specific day, the user could navigate to the shift details screen from a list of shifts.",
        "The user could also access the shift details screen through a notification."
      ]
    },
    {
      "screenshot_id": "IMG_2683",
      "screen_name": "Availability Editor",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "Calendar Day View",
          "trigger": "Saving the availability settings",
          "data_passed": "Updated availability data (start and end times) for the selected day",
          "purpose": "To reflect the changes made to the availability on the calendar day view"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Calendar Day View",
          "required_data": "Selected date (day) for which to edit availability",
          "purpose": "To know which day's availability to edit"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2684",
          "screen_name": "Record Working Hours",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap a day to edit availability",
        "Tap Save to confirm changes"
      ],
      "data_flow": "Incoming: Selected date from the calendar day view. Outgoing: Updated availability data (start and end times) to the calendar day view.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "The availability editor appears as a modal overlay on top of the calendar day view. After saving, the modal closes and returns to the calendar day view."
        }
      ],
      "feature_dependencies": [
        "schichtplanung",
        "calendar"
      ],
      "alternative_paths": [
        "User might not edit availability and simply close the modal, returning to the calendar day view with no changes.",
        "User might reset the availability to default settings."
      ]
    },
    {
      "screenshot_id": "IMG_2684",
      "screen_name": "Record Working Hours",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "zeiterfassung",
          "trigger": "Tap on 'START' button",
          "data_passed": "{location, department}",
          "purpose": "To start recording working hours for the selected location and department."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Shift calendar",
          "required_data": "User authentication, shift schedule",
          "purpose": "To ensure the user is logged in and has a valid shift to record time against."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2685",
          "screen_name": "Company Selection",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "This screen receives user authentication and shift schedule data. It allows the user to select a location and department. Upon tapping 'START', the selected location and department are sent to the zeiterfassung screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen. The user can dismiss it by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [
        "authentication",
        "shift scheduling",
        "location management",
        "department management"
      ],
      "alternative_paths": [
        "Users might be able to record working hours through other means, such as a physical time clock or a web interface."
      ]
    },
    {
      "screenshot_id": "IMG_2685",
      "screen_name": "Company Selection",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Shift Details",
          "trigger": "Selecting a company (Restaurant Bachingen or Veranstaltungshalle 4711)",
          "data_passed": "Company ID/Name, potentially shift details if already known",
          "purpose": "To display shift details specific to the selected company"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Record Working Hours",
          "required_data": "User authentication, shift calendar data, availability data, selected date",
          "purpose": "To know which user is recording hours and to provide context for the shift (date, availability)"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2686",
          "screen_name": "Department Selection",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap company to select",
        "Tap back to previous screen"
      ],
      "data_flow": "Receives user authentication and date from previous screens. Sends the selected company to the Shift Details screen.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "User selects one of the listed companies, leading to different shift details screens based on the selection."
        },
        {
          "pattern_type": "back",
          "description": "User can go back to the previous screen (Record Working Hours) using the back arrow."
        }
      ],
      "feature_dependencies": [
        "User Authentication",
        "Shift Calendar",
        "Availability Management",
        "Shift Recording"
      ],
      "alternative_paths": [
        "User might access shift details directly from the shift calendar if a company is already associated with the shift.",
        "User might not need to select a company if their account is only associated with one company."
      ]
    },
    {
      "screenshot_id": "IMG_2686",
      "screen_name": "Department Selection",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Record Working Hours",
          "trigger": "Selecting a department (BAR, KÜCHE, SERVICE)",
          "data_passed": "Selected department",
          "purpose": "To record working hours for the selected department"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Company Selection",
          "required_data": "Selected company",
          "purpose": "To know which company's departments to display"
        },
        {
          "screen_type": "Record Working Hours",
          "required_data": "Date and time information",
          "purpose": "To know which day and time the user is recording hours for"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2687",
          "screen_name": "Record Working Hours",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap back to previous screen",
        "Tap department to select"
      ],
      "data_flow": "This screen receives the selected company and date/time information from previous screens. It allows the user to select a department. The selected department is then passed to the Record Working Hours screen.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "The user selects one of the departments, which leads to the Record Working Hours screen with the selected department pre-filled."
        },
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the previous screen (Company Selection) using the back arrow."
        }
      ],
      "feature_dependencies": [
        "Time Tracking",
        "Company Management"
      ],
      "alternative_paths": [
        "The user might not record working hours at all and navigate to other features of the app."
      ]
    },
    {
      "screenshot_id": "IMG_2687",
      "screen_name": "Record Working Hours",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "zeiterfassung",
          "trigger": "Clicking 'START'",
          "data_passed": "Selected location (Restaurant Bachingen or Küche)",
          "purpose": "To begin recording working hours at the selected location."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Calendar Day View",
          "required_data": "User's schedule and location data",
          "purpose": "To allow the user to record working hours for a specific day and location."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2688",
          "screen_name": "Shift Timer",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "This screen receives the user's location options (Restaurant Bachingen, Küche) and allows the user to select one. The selected location is then passed to the next screen to begin recording working hours.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the Calendar Day View. The user can dismiss it by tapping the 'X' icon, or proceed to the next screen by tapping 'START'."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "location"
      ],
      "alternative_paths": [
        "The user can dismiss the modal and not record working hours.",
        "The user might have reached this screen from a different entry point within the zeiterfassung feature."
      ]
    },
    {
      "screenshot_id": "IMG_2688",
      "screen_name": "Shift Timer",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "Break Start",
          "trigger": "Holding to start break",
          "data_passed": "Current shift details, selected break type (Frühschicht Küche)",
          "purpose": "To initiate a break during the shift"
        },
        {
          "screen_type": "End Shift Confirmation",
          "trigger": "Tapping 'End shift'",
          "data_passed": "Shift duration, break times, department, company",
          "purpose": "To confirm the end of the shift and submit the recorded hours"
        },
        {
          "screen_type": "Availability Editor",
          "trigger": "Tapping the back arrow",
          "data_passed": "None",
          "purpose": "To return to the availability editor"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Department Selection",
          "required_data": "Company ID, User ID",
          "purpose": "To determine the department for the shift"
        },
        {
          "screen_type": "Company Selection",
          "required_data": "User ID",
          "purpose": "To determine the company for the shift"
        },
        {
          "screen_type": "Record Working Hours",
          "required_data": "User ID, Company ID, Department ID",
          "purpose": "To initiate the shift timer"
        },
        {
          "screen_type": "Availability Editor",
          "required_data": "User ID",
          "purpose": "To allow the user to start a shift from their availability"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2689",
          "screen_name": "Shift Task List",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap back to previous screen"
      ],
      "data_flow": "Receives: User ID, Company ID, Department ID, Shift start time. Sends: Shift duration, break times to the End Shift Confirmation screen.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user progresses from company selection to department selection to the shift timer."
        },
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the Availability Editor."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "availability"
      ],
      "alternative_paths": [
        {
          "description": "The user might start a shift from the availability editor instead of manually recording working hours."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2689",
      "screen_name": "Shift Task List",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "Task Detail",
          "trigger": "Tapping on the 'Spülmaschine ausräumen' task",
          "data_passed": {
            "task_id": "10",
            "task_name": "Spülmaschine ausräumen",
            "task_description": "Bitte ausräumen"
          },
          "purpose": "To view and interact with the details of a specific task"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Shift Timer",
          "required_data": {
            "company_id": "unknown",
            "department_id": "unknown",
            "shift_date": "01/21/2026",
            "shift_start_time": "08:00",
            "shift_end_time": "16:00"
          },
          "purpose": "To display the tasks assigned to the user for the current shift."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2690",
          "screen_name": "Time Clock",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap back to previous screen"
      ],
      "data_flow": "This screen receives shift details (date, time) and a list of tasks assigned to the user for that shift. It allows the user to view the tasks and potentially mark them as complete (though the completion action is not visible on this screen).",
      "navigation_patterns": [
        {
          "pattern_type": "back",
          "description": "User can navigate back to the previous screen (Shift Timer) using the back arrow."
        },
        {
          "pattern_type": "branching",
          "description": "User can tap on a task to navigate to the task detail screen."
        }
      ],
      "feature_dependencies": [
        "schichtplanung",
        "task_management"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2690",
      "screen_name": "Time Clock",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "Shift Task List",
          "trigger": "Completing all HACCP tasks",
          "data_passed": "Shift ID, Task completion status",
          "purpose": "To show the next set of tasks after HACCP tasks are completed."
        },
        {
          "screen_type": "Break Timer",
          "trigger": "Holding to start break",
          "data_passed": "Shift ID, Break Type (HACCP)",
          "purpose": "To start a HACCP break timer."
        },
        {
          "screen_type": "Shift Summary",
          "trigger": "Tapping 'End shift'",
          "data_passed": "Shift ID, Total time worked, Task completion status, Break times",
          "purpose": "To display a summary of the shift before ending it."
        },
        {
          "screen_type": "Previous Screen",
          "trigger": "Tapping the back arrow",
          "data_passed": "None",
          "purpose": "To return to the previous screen (Shift Task List)."
        },
        {
          "screen_type": "Information Screen",
          "trigger": "Tapping the information icon",
          "data_passed": "Contextual information about the screen",
          "purpose": "To provide help or information about the screen."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Shift Task List",
          "required_data": "Shift ID, List of HACCP tasks",
          "purpose": "To display the HACCP tasks associated with the current shift."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2691",
          "screen_name": "HACCP Checklist",
          "feature_area": "checklists",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap back button to return to previous screen"
      ],
      "data_flow": "The screen receives the Shift ID and a list of HACCP tasks from the Shift Task List screen. It updates the task completion status. It sends the shift ID, total time worked, task completion status, and break times to the Shift Summary screen when the shift is ended.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "Completing HACCP tasks leads to the next set of tasks."
        },
        {
          "pattern_type": "back",
          "description": "The back arrow returns to the previous screen."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "task management",
        "break management"
      ],
      "alternative_paths": [
        {
          "description": "User can complete other tasks before HACCP tasks if the task list allows it.",
          "path": "Shift Task List -> Other Task Screens -> Time Clock (HACCP)"
        }
      ]
    },
    {
      "screenshot_id": "IMG_2691",
      "screen_name": "HACCP Checklist",
      "feature_area": "checklists",
      "connects_to": [
        {
          "screen_type": "HACCP Checklist",
          "trigger": "Completing all checklist items",
          "data_passed": "HACCP checklist data (temperatures, photos, signature)",
          "purpose": "To submit the completed HACCP checklist"
        },
        {
          "screen_type": "Camera",
          "trigger": "Tapping on 'Temperatur vom Kühlschrank 1' or 'Foto Temperaturanzeige' or 'Temperatur Kühlschrank Wein an der Bar'",
          "data_passed": "Context of which photo is being taken (e.g., Kühlschrank 1)",
          "purpose": "To capture the required photos for the checklist"
        },
        {
          "screen_type": "Signature Capture",
          "trigger": "Tapping on 'Unterschrift vom ausführenden Mitarbeiter'",
          "data_passed": "None",
          "purpose": "To capture the employee's signature"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Shift Task List",
          "required_data": "HACCP checklist assigned to the shift",
          "purpose": "To ensure the user is assigned the HACCP checklist for the current shift"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2692",
          "screen_name": "Foto Temperature Display",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap back button to return",
        "Tap checklist item to interact"
      ],
      "data_flow": "The screen receives the HACCP checklist structure and requirements from the server. The user inputs data (temperatures, photos, signature). The completed checklist data is sent back to the server upon submission.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user progresses through the checklist items sequentially."
        },
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the previous screen (Shift Task List) using the back arrow."
        }
      ],
      "feature_dependencies": [
        "Checklists",
        "Camera",
        "Signature Capture"
      ],
      "alternative_paths": [
        {
          "description": "The user might not have to complete the HACCP checklist if it's not assigned to their shift.",
          "alternative_path": "The user would not see this screen."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2692",
      "screen_name": "Foto Temperature Display",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "camera",
          "trigger": "Tap 'Camera' button",
          "data_passed": "None",
          "purpose": "Take a photo for temperature display"
        },
        {
          "screen_type": "gallery",
          "trigger": "Tap 'Gallery' button",
          "data_passed": "None",
          "purpose": "Select a photo from the gallery for temperature display"
        },
        {
          "screen_type": "HACCP Checklist",
          "trigger": "Tap the close button",
          "data_passed": "None",
          "purpose": "Return to the HACCP Checklist screen"
        }
      ],
      "depends_on": [
        {
          "screen_type": "HACCP Checklist",
          "required_data": "HACCP checklist context",
          "purpose": "To know which checklist this temperature display is associated with"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2693",
          "screen_name": "Product Showcase",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap Camera to take a photo",
        "Tap Gallery to select a photo",
        "Tap X to close"
      ],
      "data_flow": "This screen receives context from the HACCP checklist screen. It allows the user to take or select a photo. The photo (and potentially temperature data extracted from it) is then likely sent back to the HACCP checklist screen to be associated with a specific checklist item.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the HACCP checklist screen."
        },
        {
          "pattern_type": "back",
          "description": "Tapping the close button returns the user to the previous screen (HACCP checklist)."
        },
        {
          "pattern_type": "branching",
          "description": "User can choose to navigate to the camera or the gallery."
        }
      ],
      "feature_dependencies": [
        "HACCP",
        "Camera",
        "Gallery"
      ],
      "alternative_paths": [
        "User might skip adding a photo and proceed with the HACCP checklist without it (if the photo is optional)."
      ]
    },
    {
      "screenshot_id": "IMG_2693",
      "screen_name": "Product Showcase",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "HACCP Checklist",
          "trigger": "User selects a product from the showcase that requires a HACCP check",
          "data_passed": "Product ID, product name, temperature requirements",
          "purpose": "To initiate a HACCP checklist specific to the selected product"
        },
        {
          "screen_type": "Foto Temperature Display",
          "trigger": "User selects a product from the showcase that requires temperature verification",
          "data_passed": "Product ID, product name, acceptable temperature range",
          "purpose": "To allow the user to record the temperature of the selected product"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Shift Task List",
          "required_data": "List of products requiring attention (HACCP, temperature checks)",
          "purpose": "To display relevant products based on the current shift's tasks"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2694",
          "screen_name": "Signature",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "Data flows in from the Shift Task List, indicating which products need attention. Data flows out to the HACCP Checklist or Foto Temperature Display, passing product-specific information.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "From the Product Showcase, the user can branch to either the HACCP Checklist or the Foto Temperature Display, depending on the selected product and its requirements."
        },
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the Shift Task List."
        }
      ],
      "feature_dependencies": [
        "HACCP",
        "Temperature Monitoring",
        "Task Management"
      ],
      "alternative_paths": [
        "The user might access the HACCP Checklist or Foto Temperature Display directly from the Shift Task List, bypassing the Product Showcase if the task is already clearly defined.",
        "The user might use a search function to find a specific product instead of browsing the showcase."
      ]
    },
    {
      "screenshot_id": "IMG_2694",
      "screen_name": "Signature",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "HACCP Checklist",
          "trigger": "User taps 'Sign' button",
          "data_passed": "Signature data",
          "purpose": "To save the signature and return to the HACCP checklist"
        },
        {
          "screen_type": "HACCP Checklist",
          "trigger": "User taps the 'X' button",
          "data_passed": "None",
          "purpose": "To return to the HACCP checklist without saving the signature"
        }
      ],
      "depends_on": [
        {
          "screen_type": "HACCP Checklist",
          "required_data": "Context of the HACCP checklist being completed",
          "purpose": "To know which checklist the signature is for"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2695",
          "screen_name": "Break Timer",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap 'Sign' to save signature",
        "Tap 'Reset' to clear signature",
        "Tap 'X' to close"
      ],
      "data_flow": "The screen receives the context of the HACCP checklist. The user provides a signature, which is then sent back to the HACCP checklist screen upon saving. The signature data is likely stored in the app's database.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "The signature screen appears as a modal overlay on top of the HACCP checklist screen."
        },
        {
          "pattern_type": "back",
          "description": "Tapping the 'X' button or the 'Sign' button navigates back to the HACCP checklist screen."
        }
      ],
      "feature_dependencies": [
        "HACCP"
      ],
      "alternative_paths": [
        "The user might skip the signature if it's not required for a particular checklist item."
      ]
    },
    {
      "screenshot_id": "IMG_2695",
      "screen_name": "Break Timer",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "Time Clock",
          "trigger": "End shift button press",
          "data_passed": "Shift duration, break information",
          "purpose": "To return to the main time clock screen after the break or shift ends."
        },
        {
          "screen_type": "Break Task",
          "trigger": "Hold to start break gesture on a break task",
          "data_passed": "Selected break task details (e.g., 'Reinigung Kaffeemaschine')",
          "purpose": "To initiate a specific break task."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Time Clock",
          "required_data": "Current shift start time, active shift status",
          "purpose": "To know when the shift started and whether a break is allowed."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2696",
          "screen_name": "Cleaning Checklist",
          "feature_area": "checklists",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Back to previous screen"
      ],
      "data_flow": "Receives shift start time from the Time Clock screen. Sends shift duration and break information back to the Time Clock screen when the shift ends. Receives break task details when a break is started.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user starts a break from the Time Clock screen, which leads to this Break Timer screen. After the break or shift ends, the user returns to the Time Clock screen."
        },
        {
          "pattern_type": "back",
          "description": "The back arrow in the top left allows the user to return to the previous screen (Time Clock)."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "breaks"
      ],
      "alternative_paths": [
        {
          "description": "The user might not take any breaks during their shift and proceed directly from the Time Clock screen to ending their shift."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2696",
      "screen_name": "Cleaning Checklist",
      "feature_area": "checklists",
      "connects_to": [],
      "depends_on": [],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2697",
          "screen_name": "Checklist Item",
          "feature_area": "checklists",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Back to previous screen"
      ],
      "data_flow": "This screen receives information about the cleaning tasks for the coffee machine and their completion status. It potentially updates the completion status of each task.",
      "navigation_patterns": [
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the previous screen (likely a list of checklists or a detail view of the coffee machine)."
        }
      ],
      "feature_dependencies": [
        "checklists"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2697",
      "screen_name": "Checklist Item",
      "feature_area": "checklists",
      "connects_to": [
        {
          "screen_type": "Cleaning Checklist",
          "trigger": "Tap on 'Done' button",
          "data_passed": "Updated checklist item status (completed)",
          "purpose": "To return to the main checklist screen with the updated status of the completed item."
        },
        {
          "screen_type": "Cleaning Checklist",
          "trigger": "Tap on the 'X' button",
          "data_passed": "No data passed, checklist remains unchanged",
          "purpose": "To return to the main checklist screen without saving any changes to the current item."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Cleaning Checklist",
          "required_data": "List of checklist items, status of each item",
          "purpose": "To display the specific checklist item and its current status."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2698",
          "screen_name": "Break Timer",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap 'Done' to submit the checklist"
      ],
      "data_flow": "This screen receives the checklist item details (e.g., 'Kaffeesatz-Behälter ausleeren') and its current completion status from the 'Cleaning Checklist' screen. Upon completion (tapping 'Done'), it sends the updated status back to the 'Cleaning Checklist' screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the 'Cleaning Checklist' screen."
        },
        {
          "pattern_type": "back",
          "description": "Tapping 'Done' or 'X' navigates back to the 'Cleaning Checklist' screen."
        }
      ],
      "feature_dependencies": [
        "checklists"
      ],
      "alternative_paths": [
        "The user might skip this item and complete other items on the checklist first.",
        "The user might not complete the checklist at all."
      ]
    },
    {
      "screenshot_id": "IMG_2698",
      "screen_name": "Break Timer",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "Cleaning Checklist",
          "trigger": "Hold to start break",
          "data_passed": "Task ID, break duration",
          "purpose": "To start a break associated with a specific cleaning task"
        },
        {
          "screen_type": "shift detail",
          "trigger": "End shift",
          "data_passed": "Shift data, including break information",
          "purpose": "To end the current shift and save the shift details"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Cleaning Checklist",
          "required_data": "List of cleaning tasks, current task ID",
          "purpose": "To know which task the break is associated with"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2699",
          "screen_name": "Checklist",
          "feature_area": "checklists",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "End shift",
        "Hold to start break"
      ],
      "data_flow": "Receives task ID from the Cleaning Checklist screen. Sends break start time and duration to the shift detail screen when the shift ends.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user navigates from the Cleaning Checklist to the Break Timer. Holding the button starts the break and returns to the Cleaning Checklist. Pressing 'End shift' ends the shift and navigates to the shift detail screen."
        },
        {
          "pattern_type": "back",
          "description": "The back arrow returns to the previous screen (Cleaning Checklist)."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "cleaning checklists",
        "shift management"
      ],
      "alternative_paths": [
        "The user might skip the break and continue with the cleaning checklist.",
        "The user might end the shift without taking a break."
      ]
    },
    {
      "screenshot_id": "IMG_2699",
      "screen_name": "Checklist",
      "feature_area": "checklists",
      "connects_to": [
        {
          "screen_type": "Checklist Item",
          "trigger": "Tapping on an incomplete checklist item",
          "data_passed": "Checklist item details (text, status)",
          "purpose": "To allow the user to view and modify the details of a specific checklist item."
        },
        {
          "screen_type": "Checklist",
          "trigger": "Completing all checklist items",
          "data_passed": "Checklist ID, completion status",
          "purpose": "To update the checklist status and potentially trigger further actions (e.g., notification, next checklist)."
        },
        {
          "screen_type": "Previous Screen",
          "trigger": "Tapping the back button",
          "data_passed": "None",
          "purpose": "To return to the previous screen."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Previous Screen",
          "required_data": "Checklist ID, Checklist Items",
          "purpose": "To display the correct checklist and its items."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2700",
          "screen_name": "Shift Countdown",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap back arrow to return to previous screen"
      ],
      "data_flow": "The screen receives checklist data (items, status) from a previous screen or data source. User interactions (checking/unchecking items) update the checklist status, which is then sent back to the data source.",
      "navigation_patterns": [
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the previous screen using the back button."
        },
        {
          "pattern_type": "branching",
          "description": "Tapping on a checklist item navigates to a detail screen for that item."
        }
      ],
      "feature_dependencies": [
        "checklists",
        "tasks"
      ],
      "alternative_paths": [
        "The user might navigate to this screen from a notification or a task list.",
        "The user might skip this checklist if it's not mandatory."
      ]
    },
    {
      "screenshot_id": "IMG_2700",
      "screen_name": "Shift Countdown",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "Break Timer",
          "trigger": "Holding down on the 'Frühschicht Küche' button",
          "data_passed": "Shift details, break duration",
          "purpose": "To start a break"
        },
        {
          "screen_type": "Shift Summary",
          "trigger": "Tapping 'End shift'",
          "data_passed": "Shift details, including start time, end time, breaks taken, tasks completed",
          "purpose": "To end the shift and view a summary"
        },
        {
          "screen_type": "Information Screen",
          "trigger": "Tapping the information icon",
          "data_passed": "Contextual information about the shift or the countdown",
          "purpose": "To provide help or more information about the current screen"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Checklist",
          "required_data": "Shift details (start time, location, tasks)",
          "purpose": "To know the shift details and tasks to be completed"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2701",
          "screen_name": "End Shift Confirmation",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap back arrow to previous screen"
      ],
      "data_flow": "This screen receives shift details and break information from previous screens. It sends shift details, break information, and task completion status to the Shift Summary screen when the shift ends. It also sends shift details to the Break Timer screen when a break is started.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user progresses through the checklist and then arrives at this countdown screen."
        },
        {
          "pattern_type": "back",
          "description": "The user can tap the back arrow to return to the previous screen (likely the checklist)."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "checklist",
        "break management"
      ],
      "alternative_paths": [
        "The user might skip the checklist and directly start the shift, leading to this screen.",
        "The user might end the shift prematurely, bypassing the countdown."
      ]
    },
    {
      "screenshot_id": "IMG_2701",
      "screen_name": "End Shift Confirmation",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "zeiterfassung",
          "trigger": "Tap 'End shift'",
          "data_passed": "None",
          "purpose": "Return to the main zeiterfassung screen after confirming the end of the shift."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Checklist",
          "required_data": "List of unfinished tasks",
          "purpose": "To display the list of unfinished tasks before ending the shift."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2702",
          "screen_name": "Working Time Adjustment",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap 'End shift' to end the shift",
        "Tap 'X' to close the dialog"
      ],
      "data_flow": "Receives a list of unfinished tasks from the checklist feature. No data is sent out.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen."
        },
        {
          "pattern_type": "back",
          "description": "Tapping the 'X' icon closes the modal and returns to the previous screen."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "Checklists"
      ],
      "alternative_paths": [
        "Complete all checklists before ending the shift to avoid this screen."
      ]
    },
    {
      "screenshot_id": "IMG_2702",
      "screen_name": "Working Time Adjustment",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "zeiterfassung",
          "trigger": "Confirm button press",
          "data_passed": "{startTime: selectedStartTime, endTime: selectedEndTime, date: 21.01.2026}",
          "purpose": "To save the adjusted working time and return to the main time tracking screen."
        }
      ],
      "depends_on": [
        {
          "screen_type": "zeiterfassung",
          "required_data": "{startTime: initialStartTime, endTime: initialEndTime, date: currentDate}",
          "purpose": "To display the current working time and allow the user to adjust it."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2703",
          "screen_name": "Signature",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "This screen receives the initial start and end times from the previous screen. The user can adjust these times. Upon confirmation, the adjusted start and end times are sent back to the main time tracking screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the main time tracking screen. After confirming the adjusted time, the modal closes and the user returns to the main screen."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung"
      ],
      "alternative_paths": [
        "The user might not adjust the time and simply return to the main time tracking screen without confirming."
      ]
    },
    {
      "screenshot_id": "IMG_2703",
      "screen_name": "Signature",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "confirmation",
          "trigger": "User taps 'Send' after signing",
          "data_passed": "Signature data, working time (11:37 - 11:39 Uhr)",
          "purpose": "To confirm the working time and submit the signature"
        },
        {
          "screen_type": "Signature",
          "trigger": "User taps 'Reset'",
          "data_passed": "None",
          "purpose": "To clear the signature and allow the user to sign again"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Working Time Adjustment",
          "required_data": "Start and end time of the working period (11:37 - 11:39 Uhr)",
          "purpose": "To display the working time that needs to be confirmed with a signature"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2704",
          "screen_name": "Signature",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "The screen receives the working time (11:37 - 11:39 Uhr) from the previous screen. The user provides a signature. Upon tapping 'Send', the signature and working time are sent for confirmation. Tapping 'Reset' clears the signature.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user progresses from the Working Time Adjustment screen to the Signature screen. From the Signature screen, the user can either submit the signature or reset it."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung"
      ],
      "alternative_paths": [
        {
          "description": "If the user is not satisfied with the working time, they might go back to the Working Time Adjustment screen to modify it before signing."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2704",
      "screen_name": "Signature",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "confirmation",
          "trigger": "User taps 'Send' button",
          "data_passed": "Signature data, working time data (11:37 - 11:39 Uhr)",
          "purpose": "To confirm the working time and submit the signature."
        },
        {
          "screen_type": "Working Time Adjustment",
          "trigger": "User taps 'Reset' button",
          "data_passed": "Working time data (11:37 - 11:39 Uhr)",
          "purpose": "To allow the user to redraw the signature if they are not satisfied with the current one."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Working Time Adjustment",
          "required_data": "Working time data (start and end time)",
          "purpose": "To display the working time that needs to be confirmed with a signature."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2705",
          "screen_name": "Time Tracking Summary",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "This screen receives the working time data (start and end time) from the previous screen. The user provides a signature. If the user taps 'Send', the signature and working time data are sent to the server. If the user taps 'Reset', the signature is cleared, and the user can redraw it.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user progresses linearly from the 'Working Time Adjustment' screen to the 'Signature' screen, then to a confirmation screen."
        },
        {
          "pattern_type": "back",
          "description": "The 'Reset' button allows the user to go back to the signature input area."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "signature capture"
      ],
      "alternative_paths": [
        {
          "description": "If the user does not want to confirm their working time, they might be able to cancel the process, potentially leading to a different screen or workflow (not shown)."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2705",
      "screen_name": "Time Tracking Summary",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "previous screen",
          "trigger": "Tap on the 'X' button",
          "data_passed": "None",
          "purpose": "Return to the previous screen (likely the shift countdown or time tracking screen)."
        },
        {
          "screen_type": "Signature",
          "trigger": "Tap on the signature area",
          "data_passed": "Employee name, restaurant name, date, start time, end time, working time",
          "purpose": "Allow the employee to add or modify their signature."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Shift Countdown",
          "required_data": "Employee name, restaurant name, date, start time, end time, working time",
          "purpose": "To display the summary of the shift that has just ended."
        },
        {
          "screen_type": "End Shift Confirmation",
          "required_data": "Employee name, restaurant name, date, start time, end time, working time",
          "purpose": "To confirm the end of the shift and proceed to the summary."
        },
        {
          "screen_type": "Working Time Adjustment",
          "required_data": "Employee name, restaurant name, date, start time, end time, working time",
          "purpose": "To allow the employee to adjust the working time before confirming the shift."
        },
        {
          "screen_type": "Signature",
          "required_data": "Employee name, restaurant name, date, start time, end time, working time",
          "purpose": "To display the signature that was added or modified."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2706",
          "screen_name": "Shift Details",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close summary"
      ],
      "data_flow": "This screen receives employee name, restaurant name, date, start time, end time, working time, and signature data from previous screens. It displays this data in a summary format. It allows the user to modify the signature and then confirms the working time.",
      "navigation_patterns": [
        {
          "pattern_type": "back",
          "description": "Tapping the 'X' button returns to the previous screen."
        },
        {
          "pattern_type": "branching",
          "description": "Tapping the signature area navigates to the signature screen."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "signature"
      ],
      "alternative_paths": [
        "The user might have manually entered the start and end times, instead of using the shift countdown timer.",
        "The user might have skipped the working time adjustment screen if the working time was correct."
      ]
    },
    {
      "screenshot_id": "IMG_2706",
      "screen_name": "Shift Details",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "unknown",
          "trigger": "Tap 'Apply now'",
          "data_passed": "Shift details (date, time, location, tags)",
          "purpose": "To submit an application for the shift"
        }
      ],
      "depends_on": [],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2707",
          "screen_name": "Working Times - January",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close",
        "Tap Apply now to apply for the shift"
      ],
      "data_flow": "This screen receives shift details (date, time, location, tags) to display. It allows the user to apply for the shift, sending the shift details to the application process.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of another screen. The user can dismiss it by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [
        "schichtplanung"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2707",
      "screen_name": "Working Times - January",
      "feature_area": "zeiterfassung",
      "connects_to": [],
      "depends_on": [
        {
          "screen_type": "Shift Details",
          "required_data": "Shift start and end times, date, pay rate",
          "purpose": "To display the working times and calculate earnings for the selected shift(s)."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2708",
          "screen_name": "Working Times Details",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap a date to view details",
        "Tap arrow to navigate to previous/next month",
        "Tap 'X' to close"
      ],
      "data_flow": "This screen receives data about the user's shifts, including dates, times, and pay rates. It calculates and displays the total earnings, shifts worked, working time, and target hours. No data is sent back to previous screens.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen (Shift Details). The user can dismiss the modal by tapping the 'X' icon."
        },
        {
          "pattern_type": "back",
          "description": "The user can navigate to previous or next months using the '<' and '>' icons."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "time tracking",
        "payroll calculation"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2708",
      "screen_name": "Working Times Details",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "Time Tracking Summary",
          "trigger": "Pressing the close icon (X)",
          "data_passed": null,
          "purpose": "Returning to the previous screen"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Working Times - January",
          "required_data": "Working time data for the selected month (January)",
          "purpose": "To display detailed working time information for the selected month"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2709",
          "screen_name": "Working Times",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap working time for details",
        "Tap back to close"
      ],
      "data_flow": "This screen receives working time data for the selected month (January) from the 'Working Times - January' screen. It displays a summary of earnings, shifts, working time, and daily/monthly working time accounts. No data is sent back to the previous screen except for the user's navigation action.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the 'Working Times - January' screen."
        },
        {
          "pattern_type": "back",
          "description": "The user can return to the 'Working Times - January' screen by pressing the close icon (X)."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2709",
      "screen_name": "Working Times",
      "feature_area": "zeiterfassung",
      "connects_to": [],
      "depends_on": [
        {
          "screen_type": "Working Times Details",
          "required_data": "Employee ID, Date Range (January), Restaurant ID",
          "purpose": "To display the working times for a specific employee and restaurant for the month of January."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2710",
          "screen_name": "Working Times",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap close button to close dialog"
      ],
      "data_flow": "This screen receives employee ID, restaurant ID, and date range from the previous screen. It displays the working times for the selected employee and restaurant for the specified dates. It also shows the status of change requests (confirmed or submitted).",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen (Working Times Details). The user can dismiss the modal by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2710",
      "screen_name": "Working Times",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "Time Tracking Summary",
          "trigger": "Closing the 'Working times' modal",
          "data_passed": "Potentially updated working times data if any changes were made and confirmed",
          "purpose": "Return to the main time tracking view after reviewing working times"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Working Times Details",
          "required_data": "Specific working times data for a selected period (e.g., a month)",
          "purpose": "To display the working times details for the selected period"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2711",
          "screen_name": "Working Times Details",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap close button to exit"
      ],
      "data_flow": "This screen receives working times data for a specific period (e.g., a month) from the 'Working Times Details' screen. It displays the working times for each day within that period. If changes are made and confirmed, the updated data is passed back to the 'Time Tracking Summary' screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen is presented as a modal overlay on top of the previous screen. The user can dismiss the modal to return to the previous screen."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2711",
      "screen_name": "Working Times Details",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "summary",
          "trigger": "Tap on 'Summary'",
          "data_passed": "Working time details for the selected entry (Restaurant Bachingen, 21.01.2026 11:37 - 11:39)",
          "purpose": "To view a summary of the selected working time entry."
        },
        {
          "screen_type": "change request",
          "trigger": "Tap on 'Change request'",
          "data_passed": "Working time details for the selected entry (Restaurant Bachingen, 21.01.2026 11:37 - 11:39)",
          "purpose": "To initiate a change request for the selected working time entry."
        },
        {
          "screen_type": "working times",
          "trigger": "Tap on the 'X' icon",
          "data_passed": "None",
          "purpose": "To return to the previous screen (Working Times)."
        }
      ],
      "depends_on": [
        {
          "screen_type": "working times",
          "required_data": "List of working times for the selected period.",
          "purpose": "To display the details of a specific working time entry selected from the list."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2712",
          "screen_name": "Broadcasts",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap working time entry to view details",
        "Tap X to close working times",
        "Tap Summary to view summary",
        "Tap Change request to request a change"
      ],
      "data_flow": "This screen receives working time data (date, time, restaurant, department, change request status) from the previous screen (Working Times). It allows the user to view a summary or initiate a change request for the selected entry. No data is directly sent back to the server from this screen, but actions taken here (e.g., change request) will trigger further data interactions.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the Working Times screen."
        },
        {
          "pattern_type": "branching",
          "description": "From this screen, the user can navigate to either the Summary screen or the Change Request screen."
        },
        {
          "pattern_type": "back",
          "description": "The user can return to the Working Times screen by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "change requests"
      ],
      "alternative_paths": [
        "Instead of viewing the details of a specific working time entry, the user could choose to view details of a different entry from the Working Times screen.",
        "The user could navigate to other sections of the app from the Working Times screen without viewing the details of any specific entry."
      ]
    },
    {
      "screenshot_id": "IMG_2712",
      "screen_name": "Broadcasts",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "new broadcast",
          "trigger": "Tap on 'New Broadcast' button",
          "data_passed": null,
          "purpose": "To create a new broadcast message"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Working Times Details",
          "required_data": "Employee data, schedule data",
          "purpose": "To allow users to access broadcasts related to their work schedule"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2713",
          "screen_name": "Broadcasts",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap broadcast to view details",
        "Tap close button to exit"
      ],
      "data_flow": "This screen receives broadcast messages (incoming and outgoing) associated with the user. It allows the user to view these messages and initiate a new broadcast. Data flows in from the server and out when a new broadcast is created.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen (Working Times Details). The user can dismiss it by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [
        "Working Times",
        "Messaging/Broadcasts"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2713",
      "screen_name": "Broadcasts",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "New Broadcast",
          "trigger": "Tap on 'New Broadcast' button",
          "data_passed": null,
          "purpose": "To create a new broadcast message"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Working Times Details",
          "required_data": "Employee data, schedule data",
          "purpose": "To allow users to access broadcasts from the working times details screen."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2714",
          "screen_name": "Broadcasts",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap broadcast to view details",
        "Tap close button to exit"
      ],
      "data_flow": "This screen receives broadcast messages (incoming and outgoing) and displays them. It allows the user to create new broadcast messages.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen (Working Times Details). The user can dismiss it by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [
        "Working Times",
        "Messaging"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2714",
      "screen_name": "Broadcasts",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcasts",
          "trigger": "Tap on 'New Broadcast' button",
          "data_passed": null,
          "purpose": "To create a new broadcast message"
        },
        {
          "screen_type": "Confirmation",
          "trigger": "Tap on 'Delete' button",
          "data_passed": "Broadcast ID",
          "purpose": "To confirm the deletion of a broadcast message"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcasts",
          "required_data": "List of broadcast messages",
          "purpose": "To display the existing broadcast messages"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2715",
          "screen_name": "Broadcast Message",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap broadcast to view details",
        "Tap X to close"
      ],
      "data_flow": "Incoming: List of broadcast messages from the backend. Outgoing: Request to create a new broadcast or delete an existing one.",
      "navigation_patterns": [
        {
          "pattern_type": "Modal",
          "description": "This screen appears as a modal overlay on top of the previous screen."
        },
        {
          "pattern_type": "Back",
          "description": "User can dismiss the modal by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [
        "User Authentication",
        "Messaging"
      ],
      "alternative_paths": [
        "User might not create or delete any broadcast and simply dismiss the modal."
      ]
    },
    {
      "screenshot_id": "IMG_2715",
      "screen_name": "Broadcast Message",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcasts",
          "trigger": "Tap on the 'X' icon",
          "data_passed": null,
          "purpose": "To close the broadcast message screen and return to the broadcasts list."
        },
        {
          "screen_type": "Broadcasts",
          "trigger": "Tap on the 'Next' button",
          "data_passed": "Message text",
          "purpose": "To proceed to the next step in creating a broadcast message."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcasts",
          "required_data": null,
          "purpose": "To allow the user to create a new broadcast message."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2716",
          "screen_name": "Broadcast Message",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close",
        "Tap Next to continue",
        "Tap Back to go back"
      ],
      "data_flow": "The screen receives the user's input for the broadcast message. The message text is passed to the next screen when the user taps 'Next'.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "The screen appears as a modal overlay on top of the broadcasts list. The user can dismiss the modal by tapping the 'X' icon or proceed to the next step by tapping 'Next'."
        },
        {
          "pattern_type": "linear",
          "description": "The user progresses through the broadcast creation process by tapping 'Next'."
        },
        {
          "pattern_type": "back",
          "description": "The user can go back to the previous screen by tapping the 'Back' button."
        }
      ],
      "feature_dependencies": [
        "Broadcasts"
      ],
      "alternative_paths": [
        {
          "description": "The user can cancel the broadcast creation process by tapping the 'X' icon."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2716",
      "screen_name": "Broadcast Message",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcast Message",
          "trigger": "Clicking 'Next' button",
          "data_passed": "Broadcast message text",
          "purpose": "To proceed to the next step in creating a broadcast message (e.g., selecting recipients or scheduling)."
        },
        {
          "screen_type": "Broadcasts",
          "trigger": "Clicking 'Back' button",
          "data_passed": "None",
          "purpose": "To return to the list of broadcasts."
        },
        {
          "screen_type": "Broadcasts",
          "trigger": "Clicking the 'X' button",
          "data_passed": "None",
          "purpose": "To close the broadcast message creation flow and return to the broadcasts list."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcasts",
          "required_data": "None",
          "purpose": "The user must navigate to the Broadcasts screen to initiate the creation of a new broadcast message."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2717",
          "screen_name": "Broadcast Recipients",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap Next to continue",
        "Tap Back to go back",
        "Tap X to close"
      ],
      "data_flow": "The screen receives no initial data. The user enters the broadcast message text. This text is passed to the next screen when 'Next' is clicked. If 'Back' or 'X' is clicked, no data is passed.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user progresses through the broadcast creation process in a linear fashion (Broadcasts -> Write Message -> Select Recipients/Schedule -> Confirmation)."
        },
        {
          "pattern_type": "back",
          "description": "The user can return to the previous screen (Broadcasts) by clicking the 'Back' button."
        },
        {
          "pattern_type": "modal",
          "description": "The broadcast message creation flow is presented as a modal overlay on top of the Broadcasts screen."
        }
      ],
      "feature_dependencies": [
        "Broadcasts"
      ],
      "alternative_paths": [
        {
          "description": "Instead of creating a new broadcast, the user might choose to view or edit an existing broadcast from the Broadcasts screen."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2717",
      "screen_name": "Broadcast Recipients",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "other",
          "trigger": "Tap 'Next'",
          "data_passed": "Recipient selections (locations, workareas, skills, events, employees, terminals)",
          "purpose": "To proceed to the next step in the broadcast creation process, likely to review and confirm the broadcast details."
        }
      ],
      "depends_on": [
        {
          "screen_type": "other",
          "required_data": "None",
          "purpose": "To allow the user to select recipients for the broadcast."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2718",
          "screen_name": "Broadcast Locations",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap Select Locations to choose locations",
        "Tap Select Workareas to choose workareas",
        "Tap Select Skills to choose skills",
        "Tap Select Events to choose events",
        "Tap Select Employees to choose employees",
        "Tap Select Terminals to choose terminals",
        "Tap Back to go back",
        "Tap Next to continue"
      ],
      "data_flow": "This screen receives no initial data. The user selects recipients based on locations, work areas, skills, events, employees, and terminals. The selected recipient data is passed to the next screen when 'Next' is tapped.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "The screen appears as a modal overlay. The user can dismiss it by tapping the 'X' icon. The user can navigate forward by tapping 'Next' or backward by tapping 'Back'."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2718",
      "screen_name": "Broadcast Locations",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcasts",
          "trigger": "Tap Back button",
          "data_passed": "None",
          "purpose": "Return to the previous screen without saving selected locations"
        },
        {
          "screen_type": "Broadcasts",
          "trigger": "Select one or more locations and proceed",
          "data_passed": "List of selected locations",
          "purpose": "Save the selected locations and return to the Broadcasts screen"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcasts",
          "required_data": "None",
          "purpose": "To allow the user to select locations for the broadcast"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2719",
          "screen_name": "Broadcast Locations",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap location to add to broadcast",
        "Tap back to previous screen"
      ],
      "data_flow": "This screen receives a list of available locations. The user selects locations, and the selected locations are passed back to the Broadcasts screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen is presented as a modal overlay on top of the Broadcasts screen."
        },
        {
          "pattern_type": "back",
          "description": "The user can tap the Back button to return to the previous screen."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": [
        "The user can close the modal without selecting any locations, effectively broadcasting to no specific location."
      ]
    },
    {
      "screenshot_id": "IMG_2719",
      "screen_name": "Broadcast Locations",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcasts",
          "trigger": "Confirm button press",
          "data_passed": "List of selected locations",
          "purpose": "To return to the broadcasts screen with the selected locations."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcast Recipients",
          "required_data": "Broadcast message content, recipient type (location)",
          "purpose": "To know the message content and that the recipients are locations."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2720",
          "screen_name": "Broadcast Workarea Selection",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap location to select/deselect",
        "Tap confirm to send broadcast"
      ],
      "data_flow": "Receives broadcast message content and recipient type from previous screens. Displays a list of locations and allows the user to select one or more. Passes the list of selected locations to the next screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen."
        },
        {
          "pattern_type": "back",
          "description": "User can return to the previous screen by pressing the 'X' button."
        }
      ],
      "feature_dependencies": [
        "Broadcasts",
        "Locations"
      ],
      "alternative_paths": [
        "User can cancel the broadcast creation process and return to the main screen.",
        "User can select a different recipient type (e.g., specific employees) on a previous screen."
      ]
    },
    {
      "screenshot_id": "IMG_2720",
      "screen_name": "Broadcast Workarea Selection",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcast Confirmation",
          "trigger": "User taps 'Confirm' button",
          "data_passed": "List of selected workareas",
          "purpose": "To confirm the broadcast to the selected workareas"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcast Locations",
          "required_data": "Location data",
          "purpose": "To allow the user to select the locations for the broadcast"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2721",
          "screen_name": "Broadcast Skills Selection",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "This screen receives a list of available workareas. The user selects workareas to receive the broadcast. The selected workareas are then passed to the confirmation screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen is presented as a modal. The user can select workareas and confirm, or dismiss the modal."
        },
        {
          "pattern_type": "back",
          "description": "User can tap the 'X' icon to dismiss the modal and return to the previous screen."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2721",
      "screen_name": "Broadcast Skills Selection",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcast Message",
          "trigger": "Confirm button press",
          "data_passed": "List of selected skills",
          "purpose": "To return to the broadcast message screen with the selected skills"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcast Locations",
          "required_data": "List of locations",
          "purpose": "To filter employees by location before selecting skills"
        },
        {
          "screen_type": "Broadcast Workarea Selection",
          "required_data": "List of workareas",
          "purpose": "To filter employees by workarea before selecting skills"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2722",
          "screen_name": "Broadcasts Select Events",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap skill to select/deselect",
        "Tap confirm to send broadcast",
        "Tap X to close"
      ],
      "data_flow": "This screen receives a list of employees filtered by location and workarea. The user selects skills, and the list of selected skills is passed back to the Broadcast Message screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen is presented as a modal overlay. The user can either confirm their skill selections or dismiss the modal."
        },
        {
          "pattern_type": "back",
          "description": "Pressing the 'Confirm' button navigates back to the Broadcast Message screen."
        }
      ],
      "feature_dependencies": [
        "Broadcasts",
        "Skills"
      ],
      "alternative_paths": [
        "The user can dismiss the modal without selecting any skills, effectively cancelling the skill selection process.",
        "The user can search for skills instead of scrolling through the list."
      ]
    },
    {
      "screenshot_id": "IMG_2722",
      "screen_name": "Broadcasts Select Events",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcasts",
          "trigger": "Confirm button press",
          "data_passed": "List of selected events",
          "purpose": "To save the selected events for the broadcast"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcast Skills Selection",
          "required_data": "List of skills",
          "purpose": "To filter employees based on skills"
        },
        {
          "screen_type": "Broadcast Workarea Selection",
          "required_data": "List of workareas",
          "purpose": "To filter employees based on workarea"
        },
        {
          "screen_type": "Broadcast Locations",
          "required_data": "List of locations",
          "purpose": "To filter employees based on location"
        },
        {
          "screen_type": "Broadcast Recipients",
          "required_data": "List of recipients",
          "purpose": "To filter employees based on recipients"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2723",
          "screen_name": "Broadcast Recipients",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap event to select",
        "Tap confirm to send broadcast"
      ],
      "data_flow": "This screen receives a list of events and allows the user to select which events the broadcast should be sent to. The selected events are then passed back to the previous screen when the 'Confirm' button is pressed.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen."
        },
        {
          "pattern_type": "back",
          "description": "The user can dismiss the modal by pressing the 'X' button."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2723",
      "screen_name": "Broadcast Recipients",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcasts",
          "trigger": "Tap on Confirm button",
          "data_passed": "List of selected employees",
          "purpose": "To confirm the selected employees and return to the broadcasts screen."
        },
        {
          "screen_type": "Broadcasts",
          "trigger": "Tap on the X button",
          "data_passed": "None",
          "purpose": "To cancel the selection of employees and return to the broadcasts screen."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcast Skills Selection",
          "required_data": "Broadcast details (location, workarea, skills, events)",
          "purpose": "To have the context of the broadcast to select employees."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2724",
          "screen_name": "Broadcasts Selection",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [],
      "data_flow": "This screen receives the broadcast details and displays a list of employees. The user selects employees to receive the broadcast. The list of selected employees is then passed back to the broadcasts screen upon confirmation.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen is presented as a modal on top of the previous screen. The user can either confirm the selection or cancel and return to the previous screen."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2724",
      "screen_name": "Broadcasts Selection",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "confirmation",
          "trigger": "User taps 'Confirm' button",
          "data_passed": "List of selected terminals (Restaurant Bachingen, Veranstaltungshalle 4711)",
          "purpose": "To confirm the broadcast settings and initiate the broadcast to the selected terminals."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcast Recipients",
          "required_data": "Recipients of the broadcast",
          "purpose": "To know who the broadcast is intended for before selecting the terminals to send it to."
        },
        {
          "screen_type": "Broadcasts Select Events",
          "required_data": "Event associated with the broadcast",
          "purpose": "To associate the broadcast with a specific event."
        },
        {
          "screen_type": "Broadcast Skills Selection",
          "required_data": "Skills required for the broadcast",
          "purpose": "To filter recipients based on required skills."
        },
        {
          "screen_type": "Broadcast Workarea Selection",
          "required_data": "Workarea associated with the broadcast",
          "purpose": "To filter recipients based on workarea."
        },
        {
          "screen_type": "Broadcast Locations",
          "required_data": "Location associated with the broadcast",
          "purpose": "To filter recipients based on location."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2725",
          "screen_name": "Broadcast Recipients",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap confirm to send broadcast to selected terminals",
        "Tap X to close the dialog"
      ],
      "data_flow": "This screen receives a list of available terminals. The user selects terminals to receive the broadcast. The selected terminals are then passed to the next screen upon confirmation.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen. The user can either confirm the selection and proceed, or dismiss the modal to return to the previous screen."
        },
        {
          "pattern_type": "back",
          "description": "User can tap the 'X' icon to dismiss the modal and return to the previous screen without saving changes."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": [
        {
          "alternative": "User can dismiss the modal and not send the broadcast to any terminals.",
          "reason": "The user might decide that the broadcast is not relevant to any terminals."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2725",
      "screen_name": "Broadcast Recipients",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "unknown",
          "trigger": "Tap Next",
          "data_passed": "Selected recipients (locations, workareas, skills, events, employees, terminals)",
          "purpose": "To proceed to the next step in the broadcast creation process (likely a confirmation or content creation screen)"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcast Workarea Selection",
          "required_data": "Selected workareas",
          "purpose": "To filter recipients based on selected workareas"
        },
        {
          "screen_type": "Broadcast Skills Selection",
          "required_data": "Selected skills",
          "purpose": "To filter recipients based on selected skills"
        },
        {
          "screen_type": "Broadcasts Select Events",
          "required_data": "Selected events",
          "purpose": "To filter recipients based on selected events"
        },
        {
          "screen_type": "Broadcast Recipients",
          "required_data": "Selected recipients",
          "purpose": "To filter recipients based on selected recipients"
        },
        {
          "screen_type": "Broadcasts Selection",
          "required_data": "Selected broadcast",
          "purpose": "To filter recipients based on selected broadcast"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2726",
          "screen_name": "Broadcast Additional Settings",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap location to select",
        "Tap work area to select",
        "Tap skill to select",
        "Tap event to select",
        "Tap employee to select",
        "Tap terminal to select",
        "Tap Back to return",
        "Tap Next to continue"
      ],
      "data_flow": "This screen receives data about selected locations, workareas, skills, events, employees, and terminals. It allows the user to refine the recipient list. The selected recipients are then passed to the next screen.",
      "navigation_patterns": [
        {
          "pattern_type": "branching",
          "description": "The user can navigate back to previous selection screens (locations, workareas, skills, events, employees, terminals) or proceed to the next step. The user can also close the modal."
        },
        {
          "pattern_type": "modal",
          "description": "This screen is presented as a modal overlay."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": [
        "The user can close the modal without selecting any recipients, effectively canceling the broadcast creation process."
      ]
    },
    {
      "screenshot_id": "IMG_2726",
      "screen_name": "Broadcast Additional Settings",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "confirmation",
          "trigger": "Tap Next",
          "data_passed": "Broadcast details, recipient list, additional settings (working today, send via email)",
          "purpose": "Confirm and send the broadcast"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcast Skills Selection",
          "required_data": "Skills selected for the broadcast",
          "purpose": "To filter recipients based on selected skills"
        },
        {
          "screen_type": "Broadcasts Select Events",
          "required_data": "Events selected for the broadcast",
          "purpose": "To filter recipients based on selected events"
        },
        {
          "screen_type": "Broadcast Recipients",
          "required_data": "List of recipients",
          "purpose": "To display the list of recipients"
        },
        {
          "screen_type": "Broadcasts Selection",
          "required_data": "Broadcast details",
          "purpose": "To display the broadcast details"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2727",
          "screen_name": "Broadcast Confirmation",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap 'Next' to proceed",
        "Tap 'Back' to return",
        "Tap 'X' to close the dialog"
      ],
      "data_flow": "Receives broadcast details, recipient list, and selected skills/events. Allows user to set additional conditions (only working today, send via email). Passes all this data to the confirmation screen.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "Part of a linear flow: Broadcast Details -> Recipients -> Additional Settings -> Confirmation"
        },
        {
          "pattern_type": "back",
          "description": "User can tap 'Back' to return to the previous screen (Broadcast Recipients)."
        },
        {
          "pattern_type": "modal",
          "description": "The screen appears as a modal overlay."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2727",
      "screen_name": "Broadcast Confirmation",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcasts Select Events",
          "trigger": "Tap Back",
          "data_passed": "Broadcast message details, recipients",
          "purpose": "To allow the user to edit the broadcast message or recipients"
        },
        {
          "screen_type": "Confirmation",
          "trigger": "Tap Send Broadcast",
          "data_passed": "Broadcast message details, recipients",
          "purpose": "To confirm that the broadcast has been sent"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcasts Select Events",
          "required_data": "Broadcast message details",
          "purpose": "To display the broadcast message details for confirmation"
        },
        {
          "screen_type": "Broadcast Recipients",
          "required_data": "List of recipients",
          "purpose": "To display the recipients of the broadcast message for confirmation"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2728",
          "screen_name": "Broadcasts",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap 'Back' to edit the broadcast",
        "Tap 'Send Broadcast' to send the message",
        "Tap 'X' to close the broadcast confirmation"
      ],
      "data_flow": "This screen receives the broadcast message details and recipient list from the previous screens. It then displays this information to the user for confirmation. If the user confirms, the broadcast message is sent to the recipients.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user navigates from the broadcast message details and recipient selection screens to this confirmation screen. From here, they can either go back to edit the message or recipients, or confirm and send the broadcast."
        },
        {
          "pattern_type": "back",
          "description": "The user can tap the back button to return to the previous screen."
        }
      ],
      "feature_dependencies": [
        "Broadcasts"
      ],
      "alternative_paths": [
        "The user could cancel the broadcast at any point in the process."
      ]
    },
    {
      "screenshot_id": "IMG_2728",
      "screen_name": "Broadcasts",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcasts",
          "trigger": "Tap the 'New Broadcast' button",
          "data_passed": "None",
          "purpose": "Allows the user to create a new broadcast message."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcast Recipients",
          "required_data": "List of recipients for the broadcast",
          "purpose": "To know who the broadcast is intended for."
        },
        {
          "screen_type": "Broadcasts Selection",
          "required_data": "List of broadcasts",
          "purpose": "To display the list of broadcasts."
        },
        {
          "screen_type": "Broadcast Additional Settings",
          "required_data": "Additional settings for the broadcast",
          "purpose": "To display the additional settings."
        },
        {
          "screen_type": "Broadcast Confirmation",
          "required_data": "Confirmation of the broadcast",
          "purpose": "To display the confirmation."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2729",
          "screen_name": "Broadcast Messages",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap broadcast message for details",
        "Tap New Broadcast to create a new broadcast",
        "Tap X to close the broadcasts screen"
      ],
      "data_flow": "This screen receives a list of broadcast messages. It allows the user to view incoming and outgoing broadcasts. Tapping 'New Broadcast' initiates the process of creating a new broadcast.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the main app content."
        },
        {
          "pattern_type": "back",
          "description": "The 'X' icon allows the user to dismiss the modal and return to the previous screen."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2729",
      "screen_name": "Broadcast Messages",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "Broadcasts Selection",
          "trigger": "Tap on the 'New Broadcast' button",
          "data_passed": "None",
          "purpose": "To initiate the process of creating a new broadcast message"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcasts",
          "required_data": "List of broadcast messages",
          "purpose": "To display the list of broadcast messages"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2730",
          "screen_name": "Documents",
          "feature_area": "documents",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap message to view details",
        "Tap New Broadcast to create a message"
      ],
      "data_flow": "Incoming: List of broadcast messages from the backend. Outgoing: Request to create a new broadcast message.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user can navigate back to the previous screen (Broadcasts) or forward to the new broadcast creation flow."
        }
      ],
      "feature_dependencies": [
        "Broadcasts"
      ],
      "alternative_paths": [
        "The user might not create a new broadcast and simply view existing messages."
      ]
    },
    {
      "screenshot_id": "IMG_2730",
      "screen_name": "Documents",
      "feature_area": "documents",
      "connects_to": [
        {
          "screen_type": "document detail",
          "trigger": "Tapping on a document in the list",
          "data_passed": "Document ID, document name, document content (or link to content)",
          "purpose": "To view the details of the selected document."
        }
      ],
      "depends_on": [],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2731",
          "screen_name": "Documents",
          "feature_area": "documents",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap document to open",
        "Tap close button to return"
      ],
      "data_flow": "This screen receives a list of documents from the backend. When a user selects a document, the document ID and other relevant information are passed to the document detail screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen. The user can dismiss the modal by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2731",
      "screen_name": "Documents",
      "feature_area": "documents",
      "connects_to": [
        {
          "screen_type": "document detail",
          "trigger": "tap on a document",
          "data_passed": "document id, document name, document content",
          "purpose": "to view the details of the selected document"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Broadcast Messages",
          "required_data": "user authentication, list of documents",
          "purpose": "to display the list of documents available to the user"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2732",
          "screen_name": "Document Upload",
          "feature_area": "documents",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap document to open",
        "Tap close button to return"
      ],
      "data_flow": "This screen receives a list of documents from the backend. When a user taps on a document, the document id, name, and content are passed to the document detail screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen (Broadcast Messages). The user can dismiss the modal by tapping the 'X' button."
        }
      ],
      "feature_dependencies": [
        "user authentication",
        "document storage"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2732",
      "screen_name": "Document Upload",
      "feature_area": "documents",
      "connects_to": [
        {
          "screen_type": "Document Upload Confirmation",
          "trigger": "Successful document upload",
          "data_passed": "Document details (name, expiry date)",
          "purpose": "To confirm the successful upload of the document."
        },
        {
          "screen_type": "Error",
          "trigger": "Failed document upload",
          "data_passed": "Error message",
          "purpose": "To display an error message if the document upload fails."
        },
        {
          "screen_type": "Documents",
          "trigger": "Tap the close button",
          "data_passed": "None",
          "purpose": "To return to the main documents screen."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Documents",
          "required_data": "List of existing documents",
          "purpose": "To display the existing documents and allow the user to upload a new one."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2733",
          "screen_name": "Checklists",
          "feature_area": "checklists",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close"
      ],
      "data_flow": "The screen receives a list of existing documents. The user can upload a new document. Upon successful upload, the new document is added to the list and the updated list is displayed on the Documents screen. Upon failure, an error message is displayed.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "The screen is presented as a modal overlay on top of the Documents screen."
        },
        {
          "pattern_type": "back",
          "description": "The user can tap the close button to return to the Documents screen."
        }
      ],
      "feature_dependencies": [
        "Document Management",
        "File Upload"
      ],
      "alternative_paths": [
        "The user might not upload a document and simply close the modal."
      ]
    },
    {
      "screenshot_id": "IMG_2733",
      "screen_name": "Checklists",
      "feature_area": "checklists",
      "connects_to": [
        {
          "screen_type": "checklist detail",
          "trigger": "Tap on a checklist item",
          "data_passed": "Checklist ID, checklist name, checklist items, status",
          "purpose": "To view and interact with the details of a specific checklist"
        },
        {
          "screen_type": "checklists archive",
          "trigger": "Tap on 'Checklists archive'",
          "data_passed": "None",
          "purpose": "To view archived checklists"
        }
      ],
      "depends_on": [
        {
          "screen_type": "previous screen (e.g., home screen, task list)",
          "required_data": "User authentication, checklist data (today's checklists, permanent checklists)",
          "purpose": "To display the user's checklists"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2734",
          "screen_name": "Checklists Archive",
          "feature_area": "checklists",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap checklist to view details",
        "Tap X to close"
      ],
      "data_flow": "Incoming: User authentication, checklist data (today's checklists, permanent checklists) from backend. Outgoing: Checklist ID to checklist detail screen, navigation to checklist archive.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen."
        },
        {
          "pattern_type": "branching",
          "description": "From this screen, the user can navigate to either a checklist detail screen or the checklist archive screen."
        },
        {
          "pattern_type": "back",
          "description": "The user can dismiss the modal and return to the previous screen by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [
        "User authentication",
        "Checklist management (creation, storage, retrieval)",
        "Task management (within checklists)"
      ],
      "alternative_paths": [
        {
          "description": "Users might be able to access checklists from a home screen, a task list, or a specific project view."
        }
      ]
    },
    {
      "screenshot_id": "IMG_2734",
      "screen_name": "Checklists Archive",
      "feature_area": "checklists",
      "connects_to": [
        {
          "screen_type": "checklist detail",
          "trigger": "taping on a checklist item",
          "data_passed": "checklist ID, date, status",
          "purpose": "to view the details of a specific checklist"
        }
      ],
      "depends_on": [
        {
          "screen_type": "checklists",
          "required_data": "user authentication, list of checklists",
          "purpose": "to display the archive of checklists for the user"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2735",
          "screen_name": "Checklists Archive",
          "feature_area": "checklists",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap back to previous screen"
      ],
      "data_flow": "This screen receives a list of archived checklists from the server. When a user taps on a checklist, the checklist ID and other relevant data are passed to the checklist detail screen.",
      "navigation_patterns": [
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the previous screen (Checklists) using the back button."
        }
      ],
      "feature_dependencies": [
        "checklists",
        "user authentication"
      ],
      "alternative_paths": [
        "The user might not reach this screen if they don't have any archived checklists."
      ]
    },
    {
      "screenshot_id": "IMG_2735",
      "screen_name": "Checklists Archive",
      "feature_area": "checklists",
      "connects_to": [
        {
          "screen_type": "Signature",
          "trigger": "Tapping the 'Unterschrift' (Signature) item",
          "data_passed": "Checklist ID, User ID",
          "purpose": "To allow the user to provide a signature for the checklist"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Checklists",
          "required_data": "List of checklists",
          "purpose": "To display the archive of checklists"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2736",
          "screen_name": "Car Return Checklist",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap back arrow to return to previous screen"
      ],
      "data_flow": "This screen receives a list of checklists from the 'Checklists' screen. It displays the archived checklists. When a user taps on the 'Unterschrift' item, the checklist ID and user ID are passed to the 'Signature' screen.",
      "navigation_patterns": [
        {
          "pattern_type": "back",
          "description": "The user can navigate back to the 'Checklists' screen using the back arrow."
        }
      ],
      "feature_dependencies": [
        "checklists",
        "signature"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2736",
      "screen_name": "Car Return Checklist",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "confirmation",
          "trigger": "Completing all checklist items and confirming correctness",
          "data_passed": "Car return checklist data (mileage, photos, damage report)",
          "purpose": "To confirm the successful completion of the car return process."
        },
        {
          "screen_type": "camera",
          "trigger": "Tapping 'Auto fotografieren' or 'Foto Kilometerstand'",
          "data_passed": "None",
          "purpose": "To take photos of the car and the odometer."
        }
      ],
      "depends_on": [
        {
          "screen_type": "Checklists",
          "required_data": "Car return checklist template",
          "purpose": "To display the specific checklist items for the car return process."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2737",
          "screen_name": "Absences",
          "feature_area": "abwesenheiten",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap back to previous screen"
      ],
      "data_flow": "This screen receives the car return checklist template. The user inputs data (mileage, photos, damage report). Upon completion, the collected data is sent to the server for processing and storage.",
      "navigation_patterns": [
        {
          "pattern_type": "linear",
          "description": "The user progresses through the checklist items sequentially."
        },
        {
          "pattern_type": "back",
          "description": "The user can navigate back to previous checklist items using the back button."
        }
      ],
      "feature_dependencies": [
        "Checklists",
        "Camera",
        "Data storage"
      ],
      "alternative_paths": [
        "The user might skip certain checklist items if they are not applicable (e.g., no damage).",
        "The user might cancel the car return process and return to the main menu."
      ]
    },
    {
      "screenshot_id": "IMG_2737",
      "screen_name": "Absences",
      "feature_area": "abwesenheiten",
      "connects_to": [
        {
          "screen_type": "New Absence Request",
          "trigger": "Tap on 'NEW REQUEST' button",
          "data_passed": null,
          "purpose": "To allow the user to create a new absence request."
        }
      ],
      "depends_on": [],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2738",
          "screen_name": "Events Search",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap 'New Request' to create a new absence request",
        "Tap 'X' to close the absences screen"
      ],
      "data_flow": "This screen displays the user's holiday and absence information, including remaining days, total days, and a history of recent absences. Data is fetched from the server and displayed on the screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the main app screen. The user can dismiss the modal by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [
        "abwesenheiten"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2738",
      "screen_name": "Events Search",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "Event Detail",
          "trigger": "Tapping on an event in the list",
          "data_passed": "Event ID, Event Details (name, date, time, location)",
          "purpose": "To view more detailed information about a specific event."
        }
      ],
      "depends_on": [],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2739",
          "screen_name": "Event Details",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap event for details",
        "Tap X to close"
      ],
      "data_flow": "This screen receives event data from a backend service. The search bar allows the user to filter the displayed events. Tapping an event sends the event details to the Event Detail screen.",
      "navigation_patterns": [
        {
          "pattern_type": "Modal",
          "description": "This screen appears as a modal overlay on top of the previous screen. The user can dismiss the modal by tapping the 'X' button."
        },
        {
          "pattern_type": "Search",
          "description": "The user can search for events using the search bar."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2739",
      "screen_name": "Event Details",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "arbeitsvertrag-minijob-fuer-die-gastr...",
          "trigger": "Clicking on the 'arbeitsvertrag-minijob-fuer-die-gastr...' link",
          "data_passed": "URL of the document",
          "purpose": "To view the linked document"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Events Search",
          "required_data": "Event ID",
          "purpose": "To display the details of a specific event selected from the search results."
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2741",
          "screen_name": "Event Details",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap 'X' to close event details"
      ],
      "data_flow": "This screen receives event details (name, location, date, time, description, work assignments) from the backend based on the event ID. It allows the user to indicate their availability and potentially apply for work assignments. The user's availability status and work assignment preferences may be sent back to the backend.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen (Events Search). The user can dismiss it by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [
        "schichtplanung",
        "availability management",
        "document viewing"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2741",
      "screen_name": "Event Details",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "Events Search",
          "trigger": "Tap on the 'X' icon",
          "data_passed": "None",
          "purpose": "To return to the list of events"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Events Search",
          "required_data": "Event ID",
          "purpose": "To display the details of a specific event"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2742",
          "screen_name": "Event Details",
          "feature_area": "schichtplanung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close event details"
      ],
      "data_flow": "The screen receives event details (name, location, date, work assignments, shifts) from the Events Search screen based on the selected event. No data is sent back.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "The screen is presented as a modal overlay on top of the Events Search screen."
        },
        {
          "pattern_type": "back",
          "description": "Tapping the 'X' icon dismisses the modal and returns to the Events Search screen."
        }
      ],
      "feature_dependencies": [
        "schichtplanung"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2742",
      "screen_name": "Event Details",
      "feature_area": "schichtplanung",
      "connects_to": [
        {
          "screen_type": "Event Details",
          "trigger": "Selecting a different event",
          "data_passed": "Event ID",
          "purpose": "To view details of a different event"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Events Search",
          "required_data": "List of events",
          "purpose": "To select an event to view details"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2743",
          "screen_name": "Tips",
          "feature_area": "dashboard",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap 'X' to close event details"
      ],
      "data_flow": "Receives event details (name, shifts, times) from the backend based on the selected event ID. No data is sent back to the backend from this screen.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of the previous screen (Events Search). The user can dismiss the modal to return to the previous screen."
        }
      ],
      "feature_dependencies": [
        "schichtplanung"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2743",
      "screen_name": "Tips",
      "feature_area": "dashboard",
      "connects_to": [],
      "depends_on": [],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2744",
          "screen_name": "Tips History",
          "feature_area": "zeiterfassung",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap X to close"
      ],
      "data_flow": "This screen displays the user's tips data, including current balance, total earned, earnings for the current month, and a history of earnings. The data is likely fetched from a server or database.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of another screen. The user can dismiss it by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [
        "User authentication",
        "Earnings tracking",
        "Data storage"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2744",
      "screen_name": "Tips History",
      "feature_area": "zeiterfassung",
      "connects_to": [
        {
          "screen_type": "Event Details",
          "trigger": "Tap the close icon (X)",
          "data_passed": "None",
          "purpose": "Return to the previous screen (Event Details)"
        }
      ],
      "depends_on": [
        {
          "screen_type": "Event Details",
          "required_data": "Event ID, Tip data for the event",
          "purpose": "To display the tip history for the selected event"
        }
      ],
      "next_screens_sequential": [
        {
          "screenshot_id": "IMG_2745",
          "screen_name": "Feature Vote",
          "feature_area": "other",
          "relationship_type": "sequential"
        }
      ],
      "navigation_paths": [
        "Tap close button to exit"
      ],
      "data_flow": "This screen receives tip history data from the Event Details screen. It displays the history of tips associated with a specific event. No data is sent back to the Event Details screen, except implicitly when the user closes the modal.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen is presented as a modal overlay on top of the Event Details screen. The user can dismiss the modal by tapping the close icon (X), returning to the Event Details screen."
        }
      ],
      "feature_dependencies": [
        "zeiterfassung",
        "tips"
      ],
      "alternative_paths": []
    },
    {
      "screenshot_id": "IMG_2745",
      "screen_name": "Feature Vote",
      "feature_area": "other",
      "connects_to": [
        {
          "screen_type": "other",
          "trigger": "Tap on 'Make a suggestion'",
          "data_passed": null,
          "purpose": "Allows users to suggest new features"
        },
        {
          "screen_type": "other",
          "trigger": "Tap on the 'X' icon",
          "data_passed": null,
          "purpose": "Closes the feature vote screen"
        }
      ],
      "depends_on": [],
      "next_screens_sequential": [],
      "navigation_paths": [
        "Tap X to close"
      ],
      "data_flow": "This screen displays a list of feature suggestions and allows users to vote on them. It also allows users to submit their own feature suggestions.",
      "navigation_patterns": [
        {
          "pattern_type": "modal",
          "description": "This screen appears as a modal overlay on top of another screen."
        },
        {
          "pattern_type": "back",
          "description": "Users can dismiss this screen by tapping the 'X' icon."
        }
      ],
      "feature_dependencies": [],
      "alternative_paths": []
    }
  ],
  "feature_area_connections": {
    "login": {
      "screens": [
        "Login",
        "Login",
        "Login",
        "Login",
        "Login",
        "Workspace Selection"
      ],
      "connects_to_areas": [],
      "depends_on_areas": []
    },
    "other": {
      "screens": [
        "Onboarding",
        "Onboarding 1",
        "Company Selection",
        "Department Selection",
        "Foto Temperature Display",
        "Product Showcase",
        "Signature",
        "Broadcasts",
        "Broadcasts",
        "Broadcasts",
        "Broadcast Message",
        "Broadcast Message",
        "Broadcast Recipients",
        "Broadcast Locations",
        "Broadcast Locations",
        "Broadcast Workarea Selection",
        "Broadcast Skills Selection",
        "Broadcasts Select Events",
        "Broadcast Recipients",
        "Broadcasts Selection",
        "Broadcast Recipients",
        "Broadcast Additional Settings",
        "Broadcast Confirmation",
        "Broadcasts",
        "Broadcast Messages",
        "Car Return Checklist",
        "Feature Vote"
      ],
      "connects_to_areas": [
        "schichtplanung",
        "dashboard"
      ],
      "depends_on_areas": []
    },
    "profile": {
      "screens": [
        "Profile Onboarding"
      ],
      "connects_to_areas": [],
      "depends_on_areas": []
    },
    "dashboard": {
      "screens": [
        "Dashboard",
        "Dashboard",
        "Dashboard",
        "Edit Dashboard",
        "Edit Dashboard",
        "Edit Dashboard",
        "Tips"
      ],
      "connects_to_areas": [
        "schichtplanung",
        "dashboard",
        "abwesenheiten"
      ],
      "depends_on_areas": []
    },
    "schichtplanung": {
      "screens": [
        "Shift calendar",
        "Shift calendar",
        "Shift calendar",
        "Shift Calendar",
        "Calendar View Selection",
        "Shift calendar",
        "Shift details",
        "Shift Details",
        "Shift calendar",
        "Calendar Day View",
        "Availability Editor",
        "Shift Task List",
        "Shift Details",
        "Events Search",
        "Event Details",
        "Event Details",
        "Event Details"
      ],
      "connects_to_areas": [
        "schichtplanung",
        "abwesenheiten"
      ],
      "depends_on_areas": []
    },
    "abwesenheiten": {
      "screens": [
        "Absence Request",
        "Absence Request",
        "Absences"
      ],
      "connects_to_areas": [
        "schichtplanung",
        "abwesenheiten"
      ],
      "depends_on_areas": []
    },
    "zeiterfassung": {
      "screens": [
        "Change Request",
        "Record Working Hours",
        "Record Working Hours",
        "Shift Timer",
        "Time Clock",
        "Break Timer",
        "Break Timer",
        "Shift Countdown",
        "End Shift Confirmation",
        "Working Time Adjustment",
        "Signature",
        "Signature",
        "Time Tracking Summary",
        "Working Times - January",
        "Working Times Details",
        "Working Times",
        "Working Times",
        "Working Times Details",
        "Tips History"
      ],
      "connects_to_areas": [
        "schichtplanung",
        "zeiterfassung"
      ],
      "depends_on_areas": []
    },
    "checklists": {
      "screens": [
        "HACCP Checklist",
        "Cleaning Checklist",
        "Checklist Item",
        "Checklist",
        "Checklists",
        "Checklists Archive",
        "Checklists Archive"
      ],
      "connects_to_areas": [],
      "depends_on_areas": []
    },
    "documents": {
      "screens": [
        "Documents",
        "Documents",
        "Document Upload"
      ],
      "connects_to_areas": [],
      "depends_on_areas": []
    }
  },
  "total_screens": 90
}