A resource (person, material or cost) in a schedule.
As with MpxjEx.Task, the common attributes are struct fields and every
attribute read from the file is in :fields.
:availability_table lists the periods the resource is available, as maps
with :start, :end and :units. :cost_rate_tables maps a table index
(0 to 4, MS Project's tables A to E) to its entries, each a map with
:start_date, :end_date, :cost_per_use and :rates, which maps the
rate index (0 standard, 1 overtime, more for Primavera) to an MpxjEx.Rate.
Summary
Types
@type t() :: %MpxjEx.Resource{ active: boolean(), availability_table: [map()], calendar_unique_id: integer() | nil, cost: float() | nil, cost_per_use: float() | nil, cost_rate_tables: %{optional(non_neg_integer()) => [map()]}, email_address: String.t() | nil, fields: map(), group: String.t() | nil, guid: String.t() | nil, id: integer() | nil, initials: String.t() | nil, max_units: float() | nil, name: String.t() | nil, notes: String.t() | nil, overtime_rate: MpxjEx.Rate.t() | nil, standard_rate: MpxjEx.Rate.t() | nil, type: atom() | nil, unique_id: integer(), work: number() | nil }