///|
fn main raise {
  let directory = @bac.DiscoveryDirectory::new()
  let device = @bac.Device::new(42, "equipment-gateway", 999U)
  assert_true(directory.observe("local-device", device.announcement(), 10UL))
  let point = @bac.ObjectId::new(2, 1)
  device.add_point(point, "setpoint", Analog, Real(19.0F), commandable=true)
  let reference : @bac.PropertyRef = {
    object: point,
    property: 85U,
    index: None,
  }
  device.write({
    reference,
    value: [Application(Real(21.0F))],
    priority: Some(12),
  })
  device.write({
    reference,
    value: [Application(Real(24.0F))],
    priority: Some(8),
  })
  let status = device.command_snapshot(point)
  assert_eq(status.occupied.length(), 2)
  assert_eq(status.active_priority, Some(8))
  device.write({ reference, value: [Application(Null)], priority: Some(8), })
  assert_eq(device.command_snapshot(point).active_priority, Some(12))
  assert_eq(directory.expire(40UL, 30UL).length(), 1)
  println(
    "Gateway inventory expires stale devices; command diagnostics explain operator override and policy restoration",
  )
}