"""Single sloped roof rafter with corrected birdsmouth cuts."""

SCHEMA = {
    "schema_name": "Single_Sloped_Roof_Rafter_With_Corrected_Birdsmouth",
    "units": "in",

    # Document
    "document_name": "Single_Roof_Rafter_Corrected_Birdsmouth",
    "clear_existing_document": False,

    # Building / rake wall assembly geometry
    "building_width_in": 155.0,
    "building_depth_in": 144.0,

    # Set these to match the top bearing plane of the rake wall assembly.
    # These defaults account for the second top plate:
    #   front wall bearing = 13.5"
    #   back wall bearing  = 49.5"
    # Over 144", that is a 36" rise = 3:12.
    "front_height_in": 13.5,
    "back_height_in": 49.5,

    # Whole-assembly elevation offset. Match rake wall assembly_base_z_in if used.
    "assembly_base_z_in": 0.0,

    # Rafter lumber
    "lumber_size": "2x6",
    "actual_size_in": {
        "2x6": {"thickness_in": 1.5, "depth_in": 5.5}
    },

    # Placement of this single rafter across building width.
    # This is the LEFT FACE of the rafter in global X, matching the wall assembly.
    # Default: x = 0.
    "rafter_x_in": 0.0,

    # Front/back overhangs, measured as horizontal projection.
    "front_overhang_in": 24.0,
    "back_overhang_in": 24.0,

    # -------------------------------------------------
    # BIRDSMOUTH CUTS
    # -------------------------------------------------
    "include_birdsmouth_cuts": True,

    # Default: 1/4 of actual 2x6 depth = 1-3/8".
    # This is the vertical notch depth measured at the heel/plumb cut.
    "birdsmouth_depth_in": 1.375,

    # Where birdsmouth seats are located.
    # Front bearing line is y = 0.
    # Back bearing line is y = building_depth_in.
    "front_birdsmouth_y_in": 0.0,
    "back_birdsmouth_y_in": 144.0,

    # Seat length measured horizontally along Y.
    # Use None to auto-compute from notch depth and roof slope.
    # For 3:12 and 1.375" depth, auto seat length = 5.5".
    "birdsmouth_seat_length_in": None,

    # Minimum bearing/reference check only. Does not change geometry.
    "minimum_bearing_in": 1.5,

    # Optional vertical adjustment after placement.
    "z_offset_in": 0.0,

    # Optional reference geometry for debugging/placement.
    "show_reference_lines": True,
    "reference_line_size_in": 0.35,
}
