id: trip
description: calculates if a vehicle is able to make a trip

argument-types:
  vehicle: lookup('vehicle')
  trip: lookup('trip')

return-type: lookup('trip-result')

#In the pre section we calculate how much fuel is required to make the trip
pre:
  fuel_required: trip.distance * vehicle.fuel_consumption

filter: (vehicle.fuel_remaining - fuel_required) > 0.5
  function:
    output: 'Made it'

filter: (vehicle.fuel_remaining - fuel_required) > 0
  function:
    output: 'Just made it'

default:
  function:
    output: 'Ran out'

post:
  fuel_remaining: max(0, vehicle.fuel_remaining - fuel_required)
  output: output
